前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python科学计算 | NumPy——快速处理数据02

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

作者头像
Sam Gor
发布2019-08-22 11:04:57
8640
发布2019-08-22 11:04:57
举报
文章被收录于专栏:SAMshareSAMshare
代码语言:javascript
复制
import numpy as np

2.3 庞大的函数库

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

2.3.1 求和、平均值、方差

  1. sum()函数
  • 计算数组元素之和,当数组是多维时,它计算数组中所有元素的和;
  • 如果指定axis参数,求和运算将沿着指定的轴进行(将得到长度为轴场的一维数组)。
代码语言:javascript
复制
a = np.random.randint(0,10,size=(4,5))
print(a)

print('sum求和:',np.sum(a)) # 计算数组所有元素的和
print('sum指定轴求和:',np.sum(a,axis=0)) # 计算0轴的元素之和
代码语言:javascript
复制
[[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参数
代码语言:javascript
复制
print('mean的用法:',np.mean(a,axis=0,dtype=np.double))
代码语言:javascript
复制
mean的用法: [4.75 3.75 4.5  6.5  3.75]
代码语言:javascript
复制
print('average的用法:',np.average(a,axis=0,weights=[1,0,1,1]))
代码语言:javascript
复制
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表示返回重建原始数组用的下标数组
代码语言:javascript
复制
a = np.random.randint(0,5,10)
print(a)
print('数组a中所有的整数:',np.unique(a))
代码语言:javascript
复制
[2 1 0 2 4 2 3 1 4 1]
数组a中所有的整数: [0 1 2 3 4]
代码语言:javascript
复制
a = np.random.randint(0,5,10)
print(a)
x, idx = np.unique(a,return_index=True)
print('数组a中所有的整数:',x)
print('前面数组在原始数组的下标:',idx) # 第一次出现的下标
代码语言:javascript
复制
[3 0 4 2 2 3 1 3 2 3]
数组a中所有的整数: [0 1 2 3 4]
前面数组在原始数组的下标: [1 6 3 0 2]
代码语言:javascript
复制
a = np.random.randint(0,5,10)
print(a)
x, idx = np.unique(a,return_inverse=True)
print('数组a中所有的整数:',x)
print('原始数组在前面数组的下标:',idx)
代码语言:javascript
复制
[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()对整数数组中各个元素出现的次数进行统计,它要求数组中所有元素都是非负的。

代码语言:javascript
复制
a = np.random.randint(0,5,10)
print(a)
print('bincount:',np.bincount(a))
代码语言:javascript
复制
[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 将自动触发广播机制。如:

代码语言:javascript
复制
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)
代码语言:javascript
复制
[[ 1  2  3]
 [11 12 13]
 [21 22 23]
 [31 32 33]]

2.4.4 NumPy 字符串函数

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

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

代码语言:javascript
复制
—End—
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-12-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 SAMshare 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 2.3 庞大的函数库
    • 2.3.1 求和、平均值、方差
      • 2.3.2 统计函数
      • 2.4 Numpy 补充
        • 2.4.1 NumPy 数据类型
          • 2.4.2 NumPy 数组属性
            • 2.4.3 NumPy 广播(Broadcast)
              • 2.4.4 NumPy 字符串函数
              领券
              问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档