📜  NumPy-数组操作(1)

📅  最后修改于: 2023-12-03 14:44:49.168000             🧑  作者: Mango

NumPy-数组操作

介绍

NumPy是一个Python库,用于科学计算和数值分析。它提供了强大的多维数组对象和各种数组操作函数,可以高效地进行各种数值计算和数据处理任务。尤其在大规模数据处理、线性代数运算和统计分析等领域表现出色。

本文将介绍NumPy中一些常用的数组操作,包括创建数组、数组的索引和切片、数组的数学运算、数组的形状操作、数组的转置和矩阵操作等。

数组创建

NumPy中最基本的对象是多维数组(ndarray)。可以通过各种方式来创建数组。

从列表创建数组
import numpy as np

# 从Python列表创建一维数组
arr1 = np.array([1, 2, 3, 4])

# 从多个Python列表创建二维数组
arr2 = np.array([[1, 2, 3], [4, 5, 6]])

# 指定数组的数据类型
arr3 = np.array([1, 2, 3, 4], dtype=np.float64)
使用特定函数创建数组
# 创建一个全是0的二维数组
zeros = np.zeros((3, 4))

# 创建一个全是1的一维数组
ones = np.ones(5)

# 创建一个单位矩阵
identity = np.eye(3)

# 创建一个随机数组
random = np.random.random((2, 3))
数组索引和切片

NumPy数组可以通过索引和切片来访问和修改元素。

索引数组
arr = np.array([1, 2, 3, 4, 5])

# 获取数组中的元素
print(arr[0])  # 输出: 1
print(arr[-1])  # 输出: 5

# 修改数组中的元素
arr[0] = 10
print(arr)  # 输出: [10, 2, 3, 4, 5]
切片数组
arr = np.array([1, 2, 3, 4, 5])

# 获取数组的子数组
slice = arr[1:4]
print(slice)  # 输出: [2, 3, 4]

# 修改数组的子数组
slice[:] = 0
print(arr)  # 输出: [1, 0, 0, 0, 5]
数组数学运算

NumPy提供了各种数学运算函数,用于对数组进行一些数学操作。

arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])

# 加法
add = np.add(arr1, arr2)
print(add)  # 输出: [5, 7, 9]

# 减法
subtract = np.subtract(arr1, arr2)
print(subtract)  # 输出: [-3, -3, -3]

# 乘法
multiply = np.multiply(arr1, arr2)
print(multiply)  # 输出: [4, 10, 18]

# 除法
divide = np.divide(arr1, arr2)
print(divide)  # 输出: [0.25, 0.4, 0.5]

# 平方根
sqrt = np.sqrt(arr1)
print(sqrt)  # 输出: [1.0, 1.41421356, 1.73205081]
数组形状操作

可以通过一些函数来改变数组的形状。

arr = np.array([1, 2, 3, 4, 5, 6])

# 转换为二维数组
reshape = arr.reshape(2, 3)
print(reshape)
# 输出:
# [[1, 2, 3],
#  [4, 5, 6]]

# 展开为一维数组
flatten = reshape.flatten()
print(flatten)  # 输出: [1, 2, 3, 4, 5, 6]
数组转置和矩阵操作

可以使用NumPy提供的函数进行数组的转置和矩阵操作。

arr = np.array([[1, 2, 3], [4, 5, 6]])

# 转置数组
transpose = arr.T
print(transpose)
# 输出:
# [[1, 4],
#  [2, 5],
#  [3, 6]]

# 矩阵乘法
dot_product = np.dot(arr, transpose)
print(dot_product)
# 输出:
# [[14, 32],
#  [32, 77]]

以上就是NumPy中一些常用的数组操作。通过这些操作,可以方便地进行数组的创建、索引和切片、数学运算、形状操作以及转置和矩阵操作等。这些功能使得NumPy成为科学计算和数据分析的重要工具。

详细的NumPy文档请参考官方文档:NumPy Documentation