python模块之numpy
Numpy是一个第三方库,是数组相关的运算
通过pip安装;pip install numpy
Anaconda python的一个科学计算发行版本,安装后将不必单独安装numpy,下面的库模块也将不必安装Scipu,numpy,pandas,matplotlib,scikit-learn
实例演示
import numpy as np #用列表创建数组
arr = np.array([1,2,3,4])#用普通列表创建数组
arr_2d = np.array([[1,2],[3,4]]) #嵌套列表创建多维数组 arr.ndim #1,数组维度
arr_2d.ndim #2 ,数组维度 arr.shape #(4,) 数组形状
arr_2d.shape #(2,2) 数组形状 arr.dtype #dtype('int32'),数组类元素类型
#数组函数生成数组
arr2 = np.arange(10) #[0,10)区间函数
print(arr2)
arr3 = np.linspace(0,4,10) # 0到4之间等分10份
print(arr3)
arr4 = np.random.randn(6,4) #正态分布的随机数
print(arr4)
arr5 = np.random.randint(1,5,(3,4))#1-5随机选整数,形成3*4的数组
print(arr5)
结果:
[0 1 2 3 4 5 6 7 8 9]
[0. 0.44444444 0.88888889 1.33333333 1.77777778 2.22222222
2.66666667 3.11111111 3.55555556 4. ]
[[ 0.66212053 -0.09177667 0.1540246 -0.60972427]
[-0.29582584 -1.78060509 0.85346138 0.98237782]
[ 0.81189452 1.05013452 -1.30248473 1.68647191]
[-0.51096937 0.55555892 1.04796969 -0.68796894]
[ 1.90261247 0.66688596 -0.83434671 -1.96265811]
[-0.55722723 -0.49191761 0.53691393 0.32902115]]
[[2 2 4 4]
[4 3 1 3]
[2 2 4 2]]
#特殊方法数组
zero = np.zeros((3,5)) #数组元素为0的3*5数组
print(zero.dtype,zero) one = np.ones((3,5),dtype="int32") #数组元素为1的3*5数组,dtype指定数组内元素的数据类型
print(one.dtype,one) eye_arr = np.eye(6) #对角线为1的数组
print(eye_arr)
结果:
float64 [[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0.]]
int32 [[1 1 1 1 1]
[1 1 1 1 1]
[1 1 1 1 1]]
[[1. 0. 0. 0. 0. 0.]
[0. 1. 0. 0. 0. 0.]
[0. 0. 1. 0. 0. 0.]
[0. 0. 0. 1. 0. 0.]
[0. 0. 0. 0. 1. 0.]
[0. 0. 0. 0. 0. 1.]]
#数组的 索引和切片
arr5 = np.array([[4, 2, 2, 2],[3, 2, 2, 4],[3, 2, 1, 4]])
arr5[0] #array([4, 2, 2, 2])
arr5[0,0] #4
arr5[-1] # array([3, 2, 1, 4])
arr5[-1,-1] #4
arr5[:2,1] #array([2,2])切片,逗号前表示行切片,逗号后表示列切片
#改变数组形状
arr6 = arr5.reshape(4,3)#生成新的数组,要求元素必须相等
print(arr6)
arr7 = arr5.reshape(2,6)
print(arr7)
arr8 = arr7.ravel() #变成1维数组
print(arr8) #矩阵转置
arr11 = arr7.transpose() #行列互换
print(arr11) #矩阵广播:至少有个维度是相同的(标量是个特殊情况)
one = one*10
print(one)
结果:
[[4 2 2]
[2 3 2]
[2 4 3]
[2 1 4]]
[[4 2 2 2 3 2]
[2 4 3 2 1 4]]
[4 2 2 2 3 2 2 4 3 2 1 4]
[[4 2]
[2 4]
[2 3]
[2 2]
[3 1]
[2 4]]
[[10. 10. 10. 10. 10.]
[10. 10. 10. 10. 10.]
[10. 10. 10. 10. 10.]]
#常用运算
arr9 = np.ones((2,6))
print(arr9)
arr79 = arr7+arr9
print(arr79)
arr7_9 = arr7-arr9
print(arr7_9)
arr10 = arr7*arr9
print(arr10)
#np.dot() #点乘
结果:
[[1. 1. 1. 1. 1. 1.]
[1. 1. 1. 1. 1. 1.]]
[[5. 3. 3. 3. 4. 3.]
[3. 5. 4. 3. 2. 5.]]
[[3. 1. 1. 1. 2. 1.]
[1. 3. 2. 1. 0. 3.]]
[[4. 2. 2. 2. 3. 2.]
[2. 4. 3. 2. 1. 4.]]
print(np.sin(arr10)) #arr10的每个元素求正选
print(np.sqrt(arr10)) #arr10的每个元素求平分根
结果:
[[-0.7568025 0.90929743 0.90929743 0.90929743 0.14112001 0.90929743]
[ 0.90929743 -0.7568025 0.14112001 0.90929743 0.84147098 -0.7568025 ]]
[[2. 1.41421356 1.41421356 1.41421356 1.73205081 1.41421356]
[1.41421356 2. 1.73205081 1.41421356 1. 2. ]]
#数组最大最小
arr10.max() #求最大值
arr10.argmax() #最大值所在索引
arr10.min() #求最小值
arr10.argmin() #最小值所在索引
arr10.sum() #求和
python模块之numpy的更多相关文章
- python模块之numpy与pandas
一.numpy numpy是python数据分析和机器学习的基础模块之一.它有两个作用:1.区别于list列表,提供了数组操作.数组运算.以及统计分布和简单的数学模型:2.计算速度快[甚至要由于pyt ...
- python模块之numpy,pandas基本用法
numpy: 是 Python 的一个扩展程序库,支持大量的维度数组与矩阵运算,此外也针对数组运算提供大量的数学函数库简单来说:就是支持一维数组和多维数组的创建和操作,并有丰富的函数库. 直接看例子 ...
- Python之路-numpy模块
这里是首先需要安装好Anaconda Anaconda的安装参考Python之路-初识python及环境搭建并测试 配置好环境之后开始使用Jupyter Notebook 1.打开cmd,输入 jup ...
- Python学习day18-常用模块之NumPy
figure:last-child { margin-bottom: 0.5rem; } #write ol, #write ul { position: relative; } img { max- ...
- Python基础篇【第5篇】: Python模块基础(一)
模块 简介 在计算机程序的开发过程中,随着程序代码越写越多,在一个文件里代码就会越来越长,越来越不容易维护. 为了编写可维护的代码,我们把很多函数分组,分别放到不同的文件里,这样,每个文件包含的代码就 ...
- 给深度学习入门者的Python快速教程 - numpy和Matplotlib篇
始终无法有效把word排版好的粘贴过来,排版更佳版本请见知乎文章: https://zhuanlan.zhihu.com/p/24309547 实在搞不定博客园的排版,排版更佳的版本在: 给深度学习入 ...
- Python数据分析之numpy学习
Python模块中的numpy,这是一个处理数组的强大模块,而该模块也是其他数据分析模块(如pandas和scipy)的核心. 接下面将从这5个方面来介绍numpy模块的内容: 1)数组的创建 2)有 ...
- Python模块学习
6. Modules If you quit from the Python interpreter and enter it again, the definitions you have made ...
- 50个很棒的Python模块
50个很棒的Python模块 我很喜欢Python,Python具有强大的扩展能力,我列出了50个很棒的Python模块,包含几乎所有的需要:比如Databases,GUIs,Images, Soun ...
随机推荐
- HDU 4912 LCA + 贪心
题意及思路 说一下为什么按LCA深度从深到浅贪心是对的.我们可以直观感受一下,一条的路径会影响以这个lca为根的这颗树中的链,而深度越深,影响范围越小,所以先选影响范围小的路径. #include & ...
- ROS Learning-006 beginner_Tutorials 编译ROS程序包
ROS Indigo beginner_Tutorials-05 编译 ROS 程序包 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.04 ...
- Android studio中ShredPreferences 的简单使用
ShredPreferences是一个轻量级的数据存储方式,只能存取字符串了整型数据这一类的数据,如果要存储复杂的数据这个存储方式就不再适用 首先是要新建一个ShredPreferences的对象 p ...
- Luogu 3943 星空
原题是CF79D Password 很妙的题. 首先我们发现区间操作不太好弄,我们想办法把它转化成单点操作,这样子处理的办法会多一点. 方法当然是差分了. 定义差分数组$b_i = a_i \^ a_ ...
- Luogu 4139 上帝与集合的正确用法
扩展欧拉定理:$a^{b} \equiv a^{b Mod \varphi (p) + \varphi (p)} (Mod p) $ $(b \geq \varphi (p))$ . 这道题 ...
- redis过期时间设置
方法一: $redis->setex(,'huahua'); 方法二: $redis->set('name','huahua'); $redis->expire('name',3);
- C++笔记-类层次结构
多重继承 一个类采用多个直接基类的情况称为多重继承,采用一个基类就是单继承. 两个基类中可能会出现名字一样的成员函数 在派生类中就必须消解这两个基类的成员函数带来的歧义性,最好的方法:在派生类中重新定 ...
- 读取txt文件将文本行组合成特定格式
有一网友要求从txt文本文件读取一些数据,然后组合为特定格式的数据行.原论题如下,刚才开始的要求描述得不太清楚,后来补充完整了. Insus.NET觉得本论题可有练习文本件读取功力,因此尝试实现一下. ...
- sql去掉换行符
select replace(replace(ServiceCall,CHAR(13),''),CHAR(10),'') from outbound_complaint where bz1='朱成 ...
- C# 三元运算
x=,y=; z=x>y? : 结果z= x=,y=; z=x>y? : 结果z=