关于python:从NumPy中级知识向高级知识迈进

81次阅读

共计 1912 个字符,预计需要花费 5 分钟才能阅读完成。

在 Python 世界里,NumPy 库是科学计算的外围库。NumPy(Numeric Python)提供了 Python 对多维数组对象的反对,并提供了大量的库,如线性代数函数、傅立叶变换以及随机数生成等科学计算性能。在这篇文章中,咱们将深刻摸索 NumPy 的一些中级常识。

一、NumPy 数组操作

1. 更改数组形态

有时咱们须要更改数组的形态以便进行某些运算。NumPy 提供了 reshape 函数来实现这个工作。

import numpy as np

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

2. 数组的重叠

在某些状况下,咱们须要将两个数组重叠在一起。NumPy 提供了 vstack 和 hstack 函数,用于垂直和程度方向上的重叠。

import numpy as np

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

print(np.vstack((arr1, arr2)))  # 垂直重叠
print(np.hstack((arr1, arr2)))  # 程度重叠

二、NumPy 的播送机制

播送是 NumPy 中弱小的性能之一。当操作两个数组时,NumPy 能够就地将较小的数组播送到较大数组的大小以进行兼容的操作。

import numpy as np

a = np.array([1, 2, 3])
b = np.array([1, 2])

a + b  # 这会报错,因为形态不匹配

b_new = np.broadcast_to(b, a.shape)  # 将 b 播送到 a 的形态
a + b_new

三、NumPy 的条件索引

NumPy 提供了条件索引的性能,即能够基于条件抉择数组中的元素。这是通过在索引操作符 [] 中提供条件表达式实现的。

import numpy as np

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

print(arr[arr > 3])  # 抉择数组中大于 3 的元素

四、NumPy 随机数生成

NumPy 提供了各种随机数生成的性能,包含均匀分布、正态分布等。

import numpy as np

print(np.random.uniform(0, 1, 10))  # 生成 10 个 [0, 1) 间的均匀分布的随机数
print(np.random.normal(0, 1, 10))  # 生成 10 个均值为 0,标准差为 1 的正态分布的随机数

这些随机数生成性能在模仿、机器学习等畛域都有广泛应用。

五、NumPy 的线性代数操作

NumPy 库提供了大量线性代数操作,如求逆、解线性方程组、计算行列式等。让咱们一起看下如何应用 NumPy 进行这些操作。

1. 矩阵的逆

计算矩阵的逆是线性代数中常见的操作,NumPy 提供了 np.linalg.inv()函数用于计算矩阵的逆。

import numpy as np

mat = np.array([[1, 2], [3, 4]])
mat_inv = np.linalg.inv(mat)
print(mat_inv)

2. 解线性方程组

对于形如 Ax = b 的线性方程组,NumPy 提供了 np.linalg.solve()函数用于求解。

import numpy as np

A = np.array([[1, 2], [3, 4]])
b = np.array([1, 2])
x = np.linalg.solve(A, b)
print(x)

3. 计算行列式

计算行列式也是线性代数中常见的操作,NumPy 提供了 np.linalg.det()函数用于计算行列式。

import numpy as np

mat = np.array([[1, 2], [3, 4]])
det = np.linalg.det(mat)
print(det)

六、NumPy 的文件操作

NumPy 提供了存储和加载数据的便当形式,这使得数据在不同的 Python 会话之间能够不便地传递。

1. 存储数据

NumPy 提供了 np.save()和 np.savetxt()函数来存储数据。

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
np.save('arr.npy', arr)  # 存储为.npy 格局的文件
np.savetxt('arr.txt', arr)  # 存储为.txt 格局的文件

2. 加载数据

对应的,NumPy 提供了 np.load()和 np.loadtxt()函数来加载数据。

import numpy as np

arr1 = np.load('arr.npy')  # 加载.npy 格局的文件
arr2 = np.loadtxt('arr.txt')  # 加载.txt 格局的文件

以上就是咱们本次对于 NumPy 中级常识的介绍。NumPy 的性能十分弱小,本文只是概述了其中的一小部分,还有更多的性能期待你去发现和把握。心愿这篇文章能帮忙你更好地了解和应用 NumPy。

正文完
 0