Python numpy是什么意思
简介
numpy是Python中用于科学计算的一个重要库,它为Python提供了高效的多维数组对象(ndarray)和对这些数组进行快速操作的函数。numpy在数据分析、机器学习、图像处理等领域都有广泛的应用。
安装
使用pip命令可以很方便地安装numpy库:
pip install numpy
ndarray对象
在numpy中,ndarray(N-dimensional array)是一个多维数组对象,它由两部分组成:实际的数据以及描述这些数据的元数据(如数据类型、形状等)。ndarray对象具有以下特点:
– 具有固定的大小,且与C语言数组类似,可以存储同类型的数据。
– 可以通过索引访问数组中的元素,以及对数组进行切片操作。
– 有助于执行各种数组操作,如数学、逻辑、形状操作等。
创建ndarray对象
可以使用numpy库提供的各种函数来创建ndarray对象。
从Python列表创建ndarray对象
可以使用numpy的array
函数从Python列表创建ndarray对象。以下是一个示例:
import numpy as np
# 创建一个包含整数的ndarray对象
arr1 = np.array([1, 2, 3, 4, 5])
# 创建一个包含浮点数的ndarray对象
arr2 = np.array([1.1, 2.2, 3.3, 4.4, 5.5])
# 创建一个包含整数的2维ndarray对象
arr3 = np.array([[1, 2, 3], [4, 5, 6]])
# 创建一个包含浮点数的3维ndarray对象
arr4 = np.array([[[1.1, 2.2], [3.3, 4.4]], [[5.5, 6.6], [7.7, 8.8]]])
使用内置函数创建ndarray对象
除了array
函数,numpy还提供了其他一些内置函数来创建ndarray对象,如:
– zeros
:创建一个全零数组
– ones
:创建一个全一数组
– eye
:创建一个单位矩阵
– random
:创建一个随机数组
以下是一些示例:
import numpy as np
# 创建一个长度为5的全零数组
zeros_arr = np.zeros(5)
print(zeros_arr)
# 输出:[0. 0. 0. 0. 0.]
# 创建一个3行4列的全一数组
ones_arr = np.ones((3, 4))
print(ones_arr)
# 输出:
# [[1. 1. 1. 1.]
# [1. 1. 1. 1.]
# [1. 1. 1. 1.]]
# 创建一个3行3列的单位矩阵
eye_arr = np.eye(3)
print(eye_arr)
# 输出:
# [[1. 0. 0.]
# [0. 1. 0.]
# [0. 0. 1.]]
# 创建一个形状为(3, 4)的随机数组
random_arr = np.random.random((3, 4))
print(random_arr)
数组操作
numpy提供了各种数组操作函数,包括数学操作、逻辑操作、形状操作等。
数学操作
numpy支持对数组进行基本的数学操作,如加法、减法、乘法、除法等。这些操作可以通过运算符进行,也可以通过numpy提供的函数进行。以下是一些示例:
import numpy as np
arr1 = np.array([1, 2, 3])
arr2 = np.array([4, 5, 6])
# 数组相加
result1 = arr1 + arr2
print(result1)
# 输出:[5 7 9]
# 数组相减
result2 = arr1 - arr2
print(result2)
# 输出:[-3 -3 -3]
# 数组相乘
result3 = arr1 * arr2
print(result3)
# 输出:[ 4 10 18]
# 数组相除
result4 = arr1 / arr2
print(result4)
# 输出:[0.25 0.4 0.5 ]
逻辑操作
numpy也支持对数组进行逻辑操作,如与、或、非等。同样,这些操作可以通过运算符进行,也可以通过numpy提供的函数进行。以下是一些示例:
import numpy as np
arr1 = np.array([True, True, False])
arr2 = np.array([False, True, False])
# 数组逻辑与
result1 = arr1 & arr2
print(result1)
# 输出:[False True False]
# 数组逻辑或
result2 = arr1 | arr2
print(result2)
# 输出:[ True True False]
# 数组逻辑非
result3 = ~arr1
print(result3)
# 输出:[False False True]
形状操作
numpy提供了一系列函数用于改变数组的形状,如改变数组的维度、改变数组的大小等。以下是一些示例:
import numpy as np
arr = np.array([1, 2, 3, 4, 5, 6])
# 改变数组的形状为(2, 3)
new_arr1 = arr.reshape(2, 3)
print(new_arr1)
# 输出:
# [[1 2 3]
# [4 5 6]]
# 增加数组的维度,在第二维度上增加一个维度
new_arr2 = np.expand_dims(arr, axis=1)
print(new_arr2)
# 输出:
# [[1]
# [2]
# [3]
# [4]
# [5]
# [6]]
# 将多维数组展平为一维数组
flatten_arr = arr.flatten()
print(flatten_arr)
# 输出:[1 2 3 4 5 6]
总结
numpy是Python中非常重要的一个科学计算库,它提供了高效的多维数组对象和对这些数组进行快速操作的函数。本文对numpy的基本概念进行了介绍,包括ndarray对象的创建和操作。