介绍
本文主要是记录一些Numpy的使用方法以及注意事项。
Note: 如果没有特别说明,np
指的是 numpy
,代表导入的 numpy
1 | import numpy as np |
PS: 网上找到一份Numpy的CheatSheet,内容不错,感兴趣的可以去下载:Numpy CheatSheet
转换ndarray数据类型
如果想转换ndarray的数据类型,可以使用ndarray的 astype
方法
1 | 1, 2, 3, 4, 5]) arr = np.array([ |
Note: 调用 astype
方法会生成新的数组,因此需要赋值到一个变量上。
切片不会生成新的数组
对数组进行切片后,返回的数组并不是原始数组的拷贝,只是一个对原始数组的引用,如果对切片后的数组进行数据修改,原始数组相应的位置数据会被修改。
1 | >>> arr = np.arange(10) |
如果想要切片后的数组是原始数组的拷贝,需要调用 copy()
方法。
1 | >>> new_arr = arr[5:8].copy() |
Axis编号
调用一些Numpy函数时会遇到设置 axis
参数,该参数可以设为 0
或 1
,对于这两个值表示的意义,可以参考下图

也就是说axis 0
代表行方向,axis 1
代表列方向。例如,我们使用 mean()
计算矩阵的平均值时,A.mean(axis=0)
代表每个平均值是沿着行方向计算可得,A.mean(axis=1)
代表每个平均值是沿着列方向计算可得。
1 | >>> A = np.random.randn(2, 3) |
A.mean(axis=0)
大小为矩阵A列的个数,A.mean(axis=1)
大小为矩阵A行的个数。
统计Boolean数组中True的个数
Boolean值通常可以转换成 0 (False) 或 1 (True),因此可以使用 sum()
函数统计Boolean数组中 True 的个数
1 | >>> bools = np.array([False, True, True, False, False]) |
既然可以知道数组中 True 的个数,自然也可以知道 True 所占的比例,此时可以用 mean()
函数进行计算
1 | >>> bools.mean() |