📅  最后修改于: 2023-12-03 15:04:33.007000             🧑  作者: Mango
NumPy是一个流行的Python库,用于科学计算和数据分析。它提供了一个强大的N维数组对象,以及广泛使用的通用函数和各种计算工具,可用于对这些数组执行操作。NumPy还是许多Python科学和数据库的基础,包括Pandas,SciPy和Scikit-learn等。本文介绍NumPy的高级功能。
矩阵乘法是NumPy的一个常用高级操作。可以使用numpy.dot()
函数来进行矩阵乘法操作。下面是一个例子:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.array([[5, 6], [7, 8]])
c = np.dot(a, b)
print(c)
输出结果为:
[[19 22]
[43 50]]
数组转置是将数组的行和列颠倒的操作。可以使用numpy.transpose()
函数来进行数组转置操作。下面是一个例子:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = np.transpose(a)
print(b)
输出结果为:
[[1 3]
[2 4]]
将多维数组转为一维数组的操作称为数组展平。可以使用numpy.flatten()
函数来进行数组展平操作。下面是一个例子:
import numpy as np
a = np.array([[1, 2], [3, 4]])
b = a.flatten()
print(b)
输出结果为:
[1 2 3 4]
可以使用numpy.sort()
函数对数组进行排序。下面是一个例子:
import numpy as np
a = np.array([3, 1, 4, 2])
b = np.sort(a)
print(b)
输出结果为:
[1 2 3 4]
广播是NumPy中的一个强大概念,用于在不进行复制的情况下对不同大小的数组执行操作。广播操作可以方便地处理不同大小的数组,避免了在计算之前进行复制的需要。下面是一个例子:
import numpy as np
a = np.array([1, 2, 3])
b = 2
c = a * b
print(c)
输出结果为:
[2 4 6]
掩码数组是由0和1组成的数组,用于表示原始数据中的有效值和无效值。可以使用掩码数组来过滤和操作数据,同时保留数据的结构和形状。可以使用numpy.ma
模块来创建和操作掩码数组。下面是一个例子:
import numpy as np
import numpy.ma as ma
a = np.array([1, 2, 3, -1, 5])
mask = np.array([0, 0, 0, 1, 0], dtype=bool)
b = ma.array(a, mask=mask)
print(b)
print(b.sum())
输出结果为:
[1 2 3 -- 5]
11
结构化数组是指由多个数据类型组成的数组。可以使用结构化数组来存储和操作具有复杂结构的数据。可以使用numpy.dtype()
函数指定数据类型,创建结构化数组。下面是一个例子:
import numpy as np
dt = np.dtype([('name', 'U10'), ('age', 'i4'), ('height', 'f4')])
a = np.array([('Tom', 25, 1.75), ('Mary', 28, 1.68)], dtype=dt)
print(a)
输出结果为:
[('Tom', 25, 1.75) ('Mary', 28, 1.68)]
NumPy可以使用并行计算功能加速计算过程。可以使用numpy.multiprocessing()
模块来进行并行计算。下面是一个例子:
import numpy as np
import numpy.multiprocessing as mp
def func(x):
return x * x
if __name__ == '__main__':
with mp.Pool(processes=4) as pool:
data = np.arange(10)
result = pool.map(func, data)
print(result)
输出结果为:
[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
以上是NumPy的一些高级功能,在使用中务必注意。