import numpy as np

2.3 庞大的函数库

除了前面介绍的ndarray数组对象和ufunc函数之外,NumPy还提供了大量对数组进行处理的函数。

2.3.1 求和、平均值、方差

  1. sum()函数
  • 计算数组元素之和,当数组是多维时,它计算数组中所有元素的和;
  • 如果指定axis参数,求和运算将沿着指定的轴进行(将得到长度为轴场的一维数组)。
a = np.random.randint(0,10,size=(4,5))	
print(a)	
print('sum求和:',np.sum(a)) # 计算数组所有元素的和	
print('sum指定轴求和:',np.sum(a,axis=0)) # 计算0轴的元素之和
[[9 7 0 4 4]	
 [5 1 4 9 1]	
 [2 1 7 7 9]	
 [3 6 7 6 1]]	
sum求和: 93	
sum指定轴求和: [19 15 18 26 15]
  1. mean()和average()函数
  • mean() 求数组的平均值,通过axis参数指定求平均值的轴,通过out参数指定输出数组
  • average() 对数组进行平均计算。它没有out和dtype参数,但有一个指定每个元素权值的weights参数
print('mean的用法:',np.mean(a,axis=0,dtype=np.double))
mean的用法: [4.75 3.75 4.5  6.5  3.75]
print('average的用法:',np.average(a,axis=0,weights=[1,0,1,1]))
average的用法: [4.66666667 4.66666667 4.66666667 5.66666667 4.66666667]

还有很多函数,如min()、max()、ptp()、argmax()、argmin()等,读者自行查看函数的文档。

2.3.2 统计函数

unique()返回其参数数组中所有不同的值,并且按照从小到大的顺序排列。它有两个可选参数:

  • return_index:Ture表示同时返回原始数组中的下标
  • return_inverse:True表示返回重建原始数组用的下标数组
a = np.random.randint(0,5,10)	
print(a)	
print('数组a中所有的整数:',np.unique(a))
[2 1 0 2 4 2 3 1 4 1]	
数组a中所有的整数: [0 1 2 3 4]
a = np.random.randint(0,5,10)	
print(a)	
x, idx = np.unique(a,return_index=True)	
print('数组a中所有的整数:',x)	
print('前面数组在原始数组的下标:',idx) # 第一次出现的下标
[3 0 4 2 2 3 1 3 2 3]	
数组a中所有的整数: [0 1 2 3 4]	
前面数组在原始数组的下标: [1 6 3 0 2]
a = np.random.randint(0,5,10)	
print(a)	
x, idx = np.unique(a,return_inverse=True)	
print('数组a中所有的整数:',x)	
print('原始数组在前面数组的下标:',idx)
[2 4 4 2 0 3 3 2 1 2]	
数组a中所有的整数: [0 1 2 3 4]	
原始数组在前面数组的下标: [2 4 4 2 0 3 3 2 1 2]

bincount()对整数数组中各个元素出现的次数进行统计,它要求数组中所有元素都是非负的。

a = np.random.randint(0,5,10)	
print(a)	
print('bincount:',np.bincount(a))
[0 3 0 1 1 0 3 1 4 3]	
bincount: [3 3 0 3 1]

2.4 Numpy 补充

2.4.1 NumPy 数据类型

Numpy 支持的数据类型比 Python 内置的类型要多很多,基本上可以和 C 语言的数据类型对应上,其中部分类型对应为 Python 内置的类型。下表列举了常用 NumPy 基本类型。

python 一维数组行合并 python一维数组求和_NumPy

2.4.2 NumPy 数组属性

NumPy 的数组中比较重要 ndarray 对象属性有:

python 一维数组行合并 python一维数组求和_数据类型_02

2.4.3 NumPy 广播(Broadcast)

广播(Broadcast)是 Numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。

import numpy as np 	
a = np.array([[ 0, 0, 0],	
           [10,10,10],	
           [20,20,20],	
           [30,30,30]])	
b = np.array([1,2,3])	
print(a + b)




2.4.4 NumPy 字符串函数

以下函数用于对 dtype 为 numpy.string_ 或 numpy.unicode_ 的数组执行向量化字符串操作。 它们基于 Python 内置库中的标准字符串函数。

这些函数在字符数组类(numpy.char)中定义。

python 一维数组行合并 python一维数组求和_python 一维数组行合并_03