大家好,欢迎来到IT知识分享网。
目录
3.基于C语言实现,经过大量优化的矩阵运算,实现高性能数据处理
1.ndarray介绍
ndarry:N-dimensional array的缩写,属于一个Python的类
官方文档解释(翻译):
由多个具有相同类型和尺寸的元素组成的多维容器(通常具有固定尺寸)
2.ndarray特点
1.只能存储相同数据类型的元素
Numpy的ndarray没有Python列表那么高的灵活性,为了保持高性能,牺牲了部分灵活性
2.每个维度的元素数量是固定的
- 对于一维数组,只有一个维度,所以元素数量必定是相同
- 对于二维数组,每行的元素数量应该是相同的,每列的元素数量应该是相同的
- 以此类推,每个维度元素数量是固定的不变的
示例:
import numpy as np # 一维数组 first = np.array([1,2,3,4,5]) # 二维数组 second = np.array([[1,2,3,4,5],[6,7,8,9,0]])
输出· :
>>>array([1,2,3,4,5]) # 一维数组
3.基于C语言实现,经过大量优化的矩阵运算,实现高性能数据处理
Python语言以简洁闻名,而C语言则比Python有着更强的运算能力,因而Numpy牺牲部分灵活性来实现高性能
3.属性
| T | 数组转置,适合于二维及以上的多维数组 |
| data | 用于表示数组数据在Python缓冲区对象的位置 |
| dtype | 元素类型 |
| flags | 数据在内存中的保存方式的信息 |
| flat | 将ndarray转换为一维数组的迭代器 |
| imag | 虚部表示 |
| real | 实部表示 |
| size | 元素数量 |
| itemsize | 每个元素的内存容量,以byte为单位 |
| nbytes | 数组总共占据的内存大小,单位为byte |
| ndim | 维度数 |
| shape | 数组形式,表示为元组 |
| strides | 在单个维度上,相邻元素间的距离,单位为byte, |
| ctypes | 用于操作ctypes的迭代器 |
| base | 数组的基类对象,类似于类的父类,表示引用的内存数据位置 |
一维数组:
>>> import numpy as np
>>> test.nbytes # itemsize * size
32
二维数组:
>>> test_2 = test.reshape([2,4]) # 根据test创建一个二维数组
*shape:表示数组形状。对于Numpy来说,从一维最低维度列开始,每高一个维度,将新增的维度加在shape元组的前面,即加在第一个。
- 一维数组表示为(a ,), 表示为列,为最低维度;
- 二维数组是(b, a), 在一维数组上新增了一维行,加在了列之前;
- 三维则是(c, b, a), 新的维度加在了行之前:
- 四维甚至于更高维度可以以此类推。
shape一般来说用于对照axis操作,axis=0是对最高维进行操作,后续会进行讲解~
坐标轴与维度操作
*stride:步长,行主序和列主序一般来说每个维度步长是不相同的;而对于不同步长来说,即使数组相同运行速度也不相同
运行比较代码
import time import numpy as np x = np.ones([, 1]) y = np.ones([, 1])[::50] c = time.time() x.sum() # 计算总和 print(time.time() - c) c = time.time() y.sum() # 计算总和 print(time.time() - c) # 消耗时间
可见stride较小的x运行较快,快了约30倍;但是在较小的实现中可不用考虑此差异
*行主序与列主序
行主序:指数组以一行为单位存储于内存中
a[0][0] a[0][1] a[0][2] ; a[1][0] a[1][1] a[1][2] ; a[2][0] a[2][1] a[2][2]
列主序:指数组以一列为单位存储于内存中
a[0][0] a[1][0] a[2][0] ; a[0][1] a[1][1] a[2][1] ; a[0][2] a[1][2] a[2][2]
*最详细数据请参考Numpy官方社区介绍
Numpy官方文档地址
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/113186.html