Numpy 的使用
模块的导入
array:np.array([1,2,3,4,5]) ---> array([1, 2, 3, 4, 5])
arange
类似于python的 range 版本(前包后不包)
linspace:np.linspace(起始位,末位) ----> 默认分成50等份, 且包含末位
可以额外设置参数:endpoint=False ---> 不包含末位
num=10 ---> 指定为均分10份
zeros:np.zeros(10) ---> array([0, 0, 0,0,0,0 ,0, 0 ,0 ,0])
ones:np.ones(10) ---> array([1, 1, 1, 1, 1, 1, 1, 1, 1, 1])
empty:np.empty([2,2]) ---> 对于多维数组而言的(随机生成的值)
array([[4.94065646e-324, 6.95252928e-310],
[6.95252928e-310, 6.95252928e-310]])
eye:np.eye(10) ---> 如下:对角线的值为1, 10行10列:如下图:
转置:T ----> res.T 行列互换,行变列,列变行(4行3列 --> 3行4列)
类型:dtype ----> res.dtype 可以使用astype进行数据类型的转换 res.astype('float')
元素个数:size ---> res.size
维度:ndim ---> res.ndim 一般我们用到的就是2维
形状:shape ---> res.shape 以元祖的形式展现 还可以使用 reshape 来更改形状(维度)
变一维:res.reshape(传一个值)
变二维:reshape(传元祖,两个值) ---> 注:两个值的积必须等于一个值
一维:与 python 中的 list 一致
二维:需要两个值,逗号前面是行索引,后面是列索引
如:res = np.array([1, 2, 3, 4],
[5, 6, 7, 8])
res[1,1] = 6 ---> 表示取第二行第二列的值
切片
一维:与 python 中的 list 一致
如:res[1:4] res[:] res[:4]
二维:需要两组值,逗号前面是行索引,后面是列索引
如:res = array([[ 1, 2, 3, 4],
[ 9, 10, 11, 12]])
res[1:3, 1:3] = ([6,7], [10, 11]) ---> 表示取第二行到第四行且第二列到第四列的值(前包后不包)
import numpy as np import random li = [random.randint(1,10) for _ in range(20)] # 随机生成20个1到10的整数 res = np.array(li) # 使用最多的是 array 的方式 # 注意: res > 5 # 结果如下:返回一个个布尔值 array([False, True, True, True, False, False, False, False, True, False, True, False, True, True, True, False, False, True, False, True]) # res > 5条件可以当做索引 res[res>5] # 结果如下:取出布尔值为 True 的对应的原值 array([ 8, 6, 8, 9, 9, 8, 7, 10, 9, 9])
花式索引
应用场景:一次性想要获取多个不同的值
import numpy as np res = np.array([1,2,3,4,5,6,7,8,9,10]) # 获取值是 2 4 7 9 的四个值 res[[1,3,6,8]] # 内层括号中的数据是 想要获取的值的 索引下标
通用函数
能够接受一个数组的叫做一元函数,接受两个的叫做二元函数
注:浮点型特殊值---> 有两个
第一种: nan 不等于任何值,甚至不等于自身 ---> np.nan
数据分析中, nan 常被用作表示数据的缺失值
第二种:inf 比任何浮点数都大 infinity缩写 (无限大) ---> np.inf