关键词

NumPy多维数组ndarray对象详解

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)

其参数涵义为:

  1. object:表示一个数组序列。
  2. dtype:可选参数,通过它可以更改数组的数据类型。
  3. copy:可选参数,表示数组能否被复制,默认是 True。
  4. order:以哪种内存布局创建数组,有 3 个可选值,分别是 C(行序列)/F(列序列)/A(默认)。
  5. 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])

本文链接:http://task.lmcjl.com/news/4296.html

展开阅读全文