📅  最后修改于: 2023-12-03 15:18:03.494000             🧑  作者: Mango
NumPy是Python科学计算的核心库之一,它提供了许多高级数学和统计函数以及数组操作工具。其中最基本的数据结构就是ndarray
(N-dimensional array)。
ndarray
是一个多维数组对象,它可以用来存储由相同类型的元素组成的元素集合(例如,一堆数字,字符串等等)。其中,每个元素在内存中都有相同的大小和对齐方式,因此ndarray
的操作非常高效。
ndarray
对象可以使用NumPy中的array()
函数或ndarray()
构造函数来创建ndarray
对象。下面是一些示例:
import numpy as np
# 创建一个一维数组
a1 = np.array([1, 2, 3, 4])
print(a1)
# 创建一个二维数组
a2 = np.array([[1, 2, 3], [4, 5, 6]])
print(a2)
# 创建一个三维数组
a3 = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(a3)
输出结果为:
[1 2 3 4]
[[1 2 3]
[4 5 6]]
[[[1 2]
[3 4]]
[[5 6]
[7 8]]]
ndarray
对象有很多属性可用来描述数组的特征。下面是一些常用的属性:
ndarray.ndim
:数组的维度(即轴的数量)ndarray.shape
:数组的形状ndarray.size
:数组的元素总数ndarray.dtype
:数组元素的数据类型ndarray.itemsize
:数组中每个元素的字节数ndarray.data
:包含数组元素的内存地址以下是一些示例:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print("number of dimensions:", a.ndim)
print("shape:", a.shape)
print("size:", a.size)
print("dtype:", a.dtype)
print("itemsize:", a.itemsize)
print("data:", a.data)
输出结果为:
number of dimensions: 2
shape: (3, 3)
size: 9
dtype: int64
itemsize: 8
data: <memory at 0x7fcd74f55d00>
使用切片和索引可以在ndarray
对象中选择特定的元素或元素子集。下面是一些示例:
import numpy as np
a = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# 获取第二行第三列的元素
print(a[1, 2])
# 获取第一行的所有元素
print(a[0, :])
# 获取第二列的所有元素
print(a[:, 1])
# 获取第二行到第三行,第二列到第三列之间的元素
print(a[1:3, 1:3])
输出结果为:
6
[1 2 3]
[2 5 8]
[[5 6]
[8 9]]
ndarray
对象支持各种运算,包括基本的数学运算(如加、减、乘、除等等),还有一些高级运算(如矩阵乘法、向量内积等等)。下面是一些示例:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
# 矩阵乘法
print(np.dot(a, b))
# 向量内积
x = np.array([1, 2, 3])
y = np.array([4, 5, 6])
print(np.inner(x, y))
# 累加所有元素
print(np.sum(a))
# 计算每一列的平均值
print(np.mean(a, axis=0))
输出结果为:
[[19 22]
[43 50]]
32
10
[2. 3.]
ndarray
是NumPy最基本的数据结构,它提供了高效的多维数组操作工具以及许多高级数学和统计函数。熟练掌握ndarray
的使用将有助于更好地理解和应用NumPy。