NumPy 数组有助于对大量数据进行高级数学和其他类型的操作。通常,这些操作的执行效率更高,比使用Python原生数组的语法更简单。
一维数组
数组创建
- 可以使用array函数从常规Python列表或元组中创建数组。得到的数组的类型是从Python列表中元素的类型推导出来的。
a = np.array([2,3,4])
b = np.array([1.2, 3.5, 5.1])
print(a.dtype) #int32
print(b.dtype) #float64
- 可以把pandas的DataFrame数据格式转化为numpy数组
基本操作
数组与标量之间可直接进行算术运算
- 会创建一个新数组的运算
a = np.array( [20,30,40,50] )
print(a+1) #[21,31,41,51]
print(a-2) # [18,28,38,48]
print(a*2) #[ 40 60 80 100]
print(a/2) #[10. 15. 20. 25.]
print(a>32) #[False False True True]
b = np.arange( 4 ) #[0,1,2,3]
print(b**2) #[0 1 4 9]
- 直接更改被操作的数组,不会创建新数组的运算,(例如
+=
和*=
)
a += 1
print(a) #[21,31,41,51]
a *= 2
print(a) #[ 42 62 82 102]
执行函数运算
abs(x)、np.abs(x)、np.fabs(x) : 计算数组各元素的绝对值
np.sqrt(x) : 计算数组各元素的平方根
np.square(x) : 计算数组各元素的平方
np.log(x) 、np.log10(x)、np.log2(x) : 计算数组各元素的自然对数、10底对数和2底对数
np.ceil(x) 、np.floor(x) : 计算数组各元素的ceiling值或floor值
np.rint(x) : 计算数组各元素的四舍五入值
np.modf(x) : 将数组各元素的小数和整数部分以两个独立数组形式返回
np.cos(x)、 np.cosh(x)、np.sin(x)、 np.sinh(x)、np.tan(x) 、np.tanh(x) : 计算数组各元素的普通型和双曲型三角函数
np.exp(x) : 计算数组各元素的指数值
np.sign(x) : 计算数组各元素的符号值,1(+), 0, ‐1(‐)
数学统计方法
np.sum(x) 求和
np.cumsum(x) 求前缀和
np.mean(x) 求平均数
np.std(x) 求标准差
np.var(x) 求方差
np.min(x) 求最小值
np.max(x) 求最大值
np.argmin(x) 求最小值索引
np.argmax(x) 求最大值索引
c = np.array( [3,2,4,5] )
print(np.argmin(c)) # 1 求最小值索引
print(np.min(c)) # 2 求最小值
二维数组
d = pd.DataFrame([[100, 1, 2, 3], [4, 5, 6, 7]], columns=['a','b','c','d'])
x = np.array(d)
print(x) # [[100 1 2 3] [ 4 5 6 7]]
print(x[:,0] # [100 4] 获取所有行的第0个数据
print(x[:,2] # [2 6] 获取所有行的第2个数据