(1)数组ndarray属性
- 轴个数: ndarray.ndim
- 数组维度:ndarray.shape
- 数组元素总数:ndarray.size
- 数组中元素类型:ndarray.dtype
(2)数组的创建
- array函数创建:np.array([1,2,3])
- 创建一个由0组成的数组:np.zeros((3,4))
- 创建一个由1组成的数组:np.ones((3,4))
- 创建一个空数组:np.empty((3,4))
- 创建数字序列:np.arange(10, 30, 5)
- 创建指定元素数量的数字序列:np.linspace(0, 2, 9)
- 复制数组N遍:np.repeat(a, N)
- 按轴连接2个数组形成新的数组:np.concatenate((a, b), axis=0)
(3)数组形状操作
- 改变数组形状:a.reshape(2,3)
- 数组展开:a.ravel() / a.flatten()
- 数组转置:a.T
(4)数组上的算术运算符:元素级别
(5)矩阵乘积:dot函数
(6)数组聚合函数:
- 累计和:sum函数
- 累加和:cumsum函数
- 最小值:min函数
- 最大值:max函数
(7)axis轴参数:
- axis=0:列
- axis=1:行
(8)切片索引
- 一维数据切片索引
array[a:b:c]
a:开始索引
b:结束索引
c:间隔
- 整数数组索引
a[[0,1,2], [0,1,0]]
获取(0,0), (1,1), (2,0)位置的元素
(9)数据筛选
- 取某个条件的索引
np.where(condition)
- 满足某个条件赋值a,否则赋值b
np.where(condition, a, b)
- 返回数组中非零元素的索引
np.nonzero(a)
- 根据某个条件从数组中抽取元素
np.extract(condition, a)
(10)np.random函数
- 返回固定大小的乱序整数数组
np.random.permutation(10)
- 返回浮点数的随机样本
np.random.random()
- 返回0-1分布的随机样本
np.random.rand()
- 返回正态分布的随机样本
np.random.randn()
- 从给出的数组中随机选择一个数
np.random.choice(a)
(11)数据排序
- 获取排序的索引值,数据不变
np.argsort(a)
- 获取排序的数组
np.sort(a)
(12)数组操作函数
- 截取函数
np.clip(x, 3, 8),数组最小值为3,最大值为8
(13)广播机制
- 解释广播:对两个不同形状的数组进行数值计算时在相应元素上操作的方式
- 如果两个数组a和b形状相同,且各维度的长度相同,则a*b的结果就是a与b数组对应位相乘
- 当运算中的2个数组形状不同时,numpy将自动触发广播机制。
(14)迭代数组
- 代码:for x in np.nditer(a):
- 迭代顺序:选择的顺序和数组内存布局一致,默认时行序优先,所以a和a.T的结果会一样
(15)字符串函数
- 所有字符串函数定义在:np.char中,所有操作为数组级别
- 字符串相连:np.char.add([‘hello’], [‘ xyz’])
- 字符串多重连接:np.char.multiply(‘xyz ‘, 3)
- 对数组中每个元素转换为小写:np.char.lower([‘XYZ’]),对每个元素调用str.lower
- 对数组中每个元素转换为大写:np.char.upper([‘xyz’]),对每个元素调用str.upper
- 通过指定分隔符对字符串进行分割并返回数组:np.char.split(‘www.baidu.com’, sep=’.’)
- 通过指定分隔符来连接数组中的元素:np.char.join(‘:’, ‘hello’)
- 使用新字符串替换字符串中的所有子字符串:np.char.replace(‘hello’, ‘ll’, ‘xx’)
(16)统计函数
- 沿给定轴返回最大的索引
np.argmax()
- 沿给定轴返回最小的索引
np.argmin()
- 沿给定轴的最大值
np.amax()
- 沿给定轴的最小值
np.amin()
- 数组中沿给定轴最大值与最小值的差
np.ptp()
- 中位数:np.median()
- 平均数:np.mean()
- 方差/标准差:np.var() / np.std()