numpy模块
数据包
- numpy
1.1. 基于矩阵的运算
1.2. np.array
1.2.1. 声明数组、矩阵
• np.array()
1.2.2. 支持原位改变
1.2.3. 索引
• 变量[行,列]
• 行、列不是必须都写,可以索引整行、整列
• :
• 单独写:代表所有数
• 变量[:,2]
• 第3列所有数
• 变量[:,1:2]
1.2.4. 基础运算
• 加减乘除等
• a=np.array([10,6,5,1])
b=np.arange(1,5)
print(a+b)
print(a-b)
print(a*b)
print(a/b)
print(a**2)
• 矩阵乘法
• np.dot()
• 比较
• b=np.arange(1,5)
print(b<3)
• [ True True False False]
• 其他运算
• np.sum(变量,axis=0or1)
• axis不写代表整个矩阵,写0代表列,1代表行
• np.min(变量,axis=0or1)
• np.max(变量,axis=0or1)
• np.cos()
• np.sin()
• np.argmin()
• 最小值的索引
• np.argmax()
• 最大值的索引
• np.mean(变量,axis=0or1)
• axis不写代表整个矩阵,写0代表列,1代表行
• np.median()
• 中位数
• np.cumsum()
• 累计和
• a=np.arange(1,10).reshape(3,3)
print(np.cumsum(a))
• [ 1 3 6 10 15 21 28 36 45]
• np.diff()
• 相邻两数差
• np.nonzero()
• 找出非0的数所在矩阵行、列
• a=np.arange(1,10).reshape(3,3)
print(np.nonzero(a))
• (array([0, 0, 0, 1, 1, 1, 2, 2, 2], dtype=int64), array([0, 1, 2, 0, 1, 2, 0, 1, 2], dtype=int64))
• 第一个array是行,第二个是列
• np.transpose()
变量.T
• 矩阵的转置(除一维以外)
• 变量[:,np.newaxis]
• 一维数组转置
• np.clip(变量,小值,大值)
• clip将数组中的元素限制在a_min, a_max之间,大于a_max的就使得它等于 a_max,小于a_min,的就使得它等于a_min
1.2.5. 属性
• .ndim
• 维度
• import numpy as np
a=np.array([[1,2,3],[4,5,6]])
print(a.size)
print(a.shape)
print(a.ndim)
• .shape
• 行列
• .size
• 多少个元素
• .flat
• 变成一维数组,但是返回的是一个迭代器,需要用遍历才能显示出来
1.2.6. 方法
• .flatten()
• 变成一维数组
• .copy()
• 副本
1.2.7. 函数
• np.zero((行,列))
• np.ones((行,列))
• np.empty((行,列))
• 生成的是非常接近0的数字
• np.arange()
• 和range一样
• np.arange().reshape(行,列)
• np.linspace(起,终,几段)
• np.linspace(1,5,5)
• 就是在1和5之间等间隔取5个数,即第一个数是1,最后一个数是5,中间等间隔,得到的就是数组x=[1, 2, 3, 4, 5]。
• np.linspace(起,终,几段).reshape((行,列))
• np.linspace(1,6,6).reshape((2,3))
• np.random.random(行,列)
• 生成几行几列大于0小于1的数
• np.vstack((数组,数组,…))
• 垂直合并
• a=np.array([1,2,3])
b=np.array([4,5,6])
c=np.vstack((a,b))
print©
• [[1 2 3]
[4 5 6]]
• np.hstack((数组,数组,…))
• 水平合并
• np.concatenate((数组,数组,…),axis=0or1)
• 自定义水平或者垂直合并
• np.split(数组,分为几部分,axis=0or1)
• 分割,只能平均分
• np.array_split(数组,分为几部分,axis=0or1)
• 分割,可以不均分
• np.sort()
• 逐行排序
1.2.8. 遍历
• for row in 变量:
• 遍历每行
• for column in 变量.T:
• 遍历每列
• array里面没有直接可以迭代列的,只能先改变array,再迭代
• for i in 变量.flat:
• 遍历每个元素