NumPy中最重要的对象是ndarray(N-dimensional array,多维数组)。ndarray是一个由同类型元素构成的多维数组,可以看作是Python内置的list对象的扩展,其优点在于:
- ndarray支持并行化运算,对于科学计算的大规模数据处理有很大的优势;
- ndarray支持矢量化运算,避免了Python循环语句慢的缺点;
- ndarray中的元素都是同一类型,这使得在存储和处理数据时更加高效。
创建ndarray对象
通过 NumPy 的内置函数 array() 可以创建 ndarray 对象,其语法格式如下:numpy.array(object, dtype = None, copy = True, order = None,ndmin = 0)
其参数涵义为:
- object:表示一个数组序列。
- dtype:可选参数,通过它可以更改数组的数据类型。
- copy:可选参数,表示数组能否被复制,默认是 True。
- order:以哪种内存布局创建数组,有 3 个可选值,分别是 C(行序列)/F(列序列)/A(默认)。
- ndim:用于指定数组的维度。
如下,我们创建了两个数组:
import numpy as np
# 创建一个包含 5 个元素的数组
a = np.array([1, 2, 3, 4, 5])
print(a)
# 创建一个二维数组
b = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(b)
NumPy ndarray属性
ndarray属性有以下几个:
- shape:表示ndarray的形状,即各个维度的长度组成的元组;
- dtype:表示ndarray中元素的数据类型;
- ndim:表示ndarray的维度数;
- size:表示ndarray中元素的总个数;
- itemsize:表示ndarray中每个元素的字节大小;
- nbytes:表示ndarray中所有元素的字节大小;
- T:表示ndarray的转置矩阵。
NumPy ndarray方法
ndarray包含的方法有以下几个:
- reshape:返回一个具有相同数据的新数组,但形状可以不同;
- flatten:返回一个将多维数组转换为一维数组的新数组;
- transpose:返回ndarray的转置矩阵;
- dot:返回两个数组的矩阵积;
- sum:计算ndarray中所有元素的总和;
- mean:计算ndarray中所有元素的平均值;
- std:计算ndarray中所有元素的标准差;
- max/min:计算ndarray中所有元素的最大值/最小值;
- argmax/argmin:返回ndarray中最大值/最小值的索引。
ndarray操作示例
接下来我们对ndarray进行几个简单的操作,示例如下:
获取 ndarray 的属性:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
# 获取数组维度
print(a.ndim)
# 获取数组形状
print(a.shape)
# 获取数组元素类型
print(a.dtype)
对 ndarray 进行运算:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
# 数组加法
b = a + 2
print(b)
# 数组乘法
c = a * 2
print(c)
# 数组除法
d = a / 2
print(d)
对 ndarray 进行索引和切片:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
# 获取第二个元素
print(a[1])
# 获取前三个元素
print(a[:3])
# 获取后两个元素
print(a[-2:])
# 获取数组中的偶数元素
print(a[a%2==0])
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:NumPy多维数组ndarray对象详解 - Python技术站
评论列表(1条)
[…] 在NumPy中,数组被称为ndarray(N-dimensional array),它是一个由同种数据类型元素组成的多维数组,而且每个维度称为轴(axis),轴的数量称为秩(rank)。 […]