📜  NumPy-Ndarray对象(1)

📅  最后修改于: 2023-12-03 15:18:03.494000             🧑  作者: Mango

NumPy-Ndarray对象

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。