一、NumPy介绍
NumPy是Python科学计算的核心库,提供了高效的多维数组对象以及相关的计算函数。NumPy底层被许多其他科学计算Python库所依赖,例如Pandas,SciPy等。NumPy的核心是ndarray,这是一个具有矢量算术计算和复杂广播能力的快速且灵活的容器。实际上,许多用于数组计算的Python库都是基于NumPy的。NumPy的操作主要包括索引、切片、迭代、比较和操作等这些高效的科学计算函数。
二、NumPy数组
NumPy的核心是ndarray,这是一个具有矢量算术计算和复杂广播能力的快速且灵活的容器。在NumPy中,ndarray是n维数组对象,其中每个元素具有相同的数据类型。Ndarray可用于运算,例如加、减、乘、除等,以及各种数学操作。 下面演示一个在NumPy中创建数组的示例:
import numpy as np
# 1-D数组
a = np.array([1, 2, 3])
print(a) # [1 2 3]
print(type(a)) # <class numpy.ndarray>
# 2-D数组
b = np.array([[1, 2, 3], [4, 5, 6]])
print(b) # [[1 2 3]
# [4 5 6]]
print(type(b)) # <class numpy.ndarray>
# 3-D数组
c = np.array([[[1, 2], [3, 4]], [[5, 6], [7, 8]]])
print(c) # [[[1 2]
# [3 4]]
# [[5 6]
# [7 8]]]
print(type(c)) # <class numpy.ndarray>
三、NumPy数学操作
NumPy不仅仅是一个创建ndarray的库,它还提供了各种用于数学操作的函数。下面是NumPy中的数学操作示例。 1、加法
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
# 数组相加
c = np.add(a,b)
print(c) # [5 7 9]
2、减法
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
# 数组相减
c = np.subtract(a,b)
print(c) # [-3 -3 -3]
3、乘法
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
# 数组相乘
c = np.multiply(a,b)
print(c) # [ 4 10 18]
4、除法
import numpy as np
a = np.array([1,2,3])
b = np.array([4,5,6])
# 数组相除
c = np.divide(a,b)
print(c) # [0.25 0.4 0.5 ]
四、NumPy操作数组
NumPy可以对数组进行多种多样的操作,包括数组操作、数组排序、数组转换等等。下面演示NumPy中操作数组的示例。 1、数组操作
import numpy as np
# 将一维数组转化为二维数组
a = np.array([1, 2, 3, 4, 5, 6])
b = np.reshape(a, (2, 3))
print(b) # [[1 2 3]
# [4 5 6]]
# 数组转置
c = np.transpose(b)
print(c) # [[1 4]
# [2 5]
# [3 6]]
2、数组排序
import numpy as np
a = np.array([3, 1, 4, 2])
# 对数组进行排序
b = np.sort(a)
print(b) # [1 2 3 4]
# 对数组进行倒序
c = -np.sort(-a)
print(c) # [4 3 2 1]
3、数组转换
import numpy as np
# 将列表转化为数组
a = [1, 2, 3]
b = np.asarray(a)
print(b) # [1 2 3]
# 将元组转化为数组
c = (4, 5, 6)
d = np.asarray(c)
print(d) # [4 5 6]
五、NumPy索引和切片
NumPy中的索引和切片非常类似于列表。NumPy每个数组的索引都是从0开始的。 1、索引
import numpy as np
a = np.array([1, 2, 3, 4, 5])
# 索引
print(a[0]) # 1
print(a[2]) # 3
print(a[-1]) # 5
2、切片
import numpy as np
a = np.array([1, 2, 3, 4, 5])
# 切片
print(a[0:2]) # [1 2]
print(a[2:]) # [3 4 5]
print(a[1:4:2]) # [2 4]
六、NumPy广播
NumPy广播是NumPy中的一个重要功能,它能够在不同形状的数组之间进行算术运算。具体来说,当一组数组的形状不一样时,NumPy会尝试将它们转换为标准形状,以便可以对它们进行算术运算。下面是NumPy广播的示例。
import numpy as np
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
# 广播
c = a * b
print(c) # [ 4 10 18]
七、总结
以上是NumPy中文的相关介绍,包含了NumPy数组、NumPy数学操作、NumPy操作数组、NumPy索引和切片以及NumPy广播等方面的内容。NumPy作为Python的科学计算的核心库,其高效的多维数组对象以及相关的计算函数可以提供非常有效的计算功能。