📅  最后修改于: 2023-12-03 14:44:49.168000             🧑  作者: Mango
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