Python科学计算 | NumPy——快速处理数据02

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 基本类型。

2.4.2 NumPy 数组属性

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

2.4.3 NumPy 广播(Broadcast)

广播(Broadcast)是 Numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。 如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape,那么 aXb 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。 当运算中的 2 个数组的形状不同时,numpy 将自动触发广播机制。如:

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)
[[ 1  2  3]
 [11 12 13]
 [21 22 23]
 [31 32 33]]

2.4.4 NumPy 字符串函数

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

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

—End—

原文发布于微信公众号 - SAMshare(gh_8528ce7b7e80)

原文发表时间:2018-12-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券