Numpy的介绍
NumPy(Numerical Python)是Python中用于科学计算的一个重要库。它提供了高性能的多维数组对象(ndarray)、用于数组操作的各种函数以及用于线性代数、傅立叶变换等任务的功能。
NumPy是许多其他科学计算库的基础,例如SciPy、Pandas和Matplotlib等。
以下是NumPy的一些主要特点和功能:
NumPy的核心是ndarray对象,它是一个N维数组,可以包含相同类型的数据。
ndarray提供了各种方法来对数组进行操作,如索引、切片、迭代等。
NumPy通过广播机制对不同形状的数组进行数学操作,使得形状不匹配的数组也能进行操作而不引发错误。
NumPy提供了大量的数学函数,如三角函数、指数函数、对数函数等,这些函数能够在数组上进行元素级别的操作。线性代数操作:
NumPy提供了丰富的线性代数函数,包括向量和矩阵运算、求逆、求行列式、特征值分解、奇异值分解等。
NumPy包含了用于生成各种概率分布的随机数的函数,如正态分布、均匀分布、泊松分布等。
NumPy提供了用于读写数组数据的函数,可以方便地将数据保存到磁盘或从磁盘加载数据。
NumPy中的数组操作是使用C语言实现的,因此具有优秀的性能,尤其是在处理大规模数据时。
NumPy可以与许多其他科学计算库无缝整合,如SciPy(科学计算库)、Pandas(数据分析库)、Matplotlib(绘图库)等。
总的来说,NumPy是Python中进行科学计算的核心库之一,它提供了丰富的功能和高效的实现,使得在处理大规模数据和进行复杂数学运算时变得更加简单和高效。
Numpy的十大内置常用函数
以下是 NumPy 中最常见的 10 个内置函数及其用法的总结:
用法:将输入的数据(列表、元组、数组等)转换为 NumPy 数组。
示例:
import numpy as np
my_list = [1, 2, 3, 4, 5]
arr = np.array(my_list)
print(arr)
用法:创建指定形状的全零或全一数组。示例:
import numpy as np
zeros_arr = np.zeros((3, 3))
ones_arr = np.ones((2, 2))
print(zeros_arr)
print(ones_arr)
用法:返回指定范围内的等间隔的值。示例:
import numpy as np
arr = np.arange(0, 10, 2)
print(arr) # 输出 [0 2 4 6 8]
用法:返回指定范围内的等间隔的数值。示例:
import numpy as np
arr = np.linspace(0, 5, 10)
print(arr) # 输出 [0. 0.55555556 1.11111111 1.66666667 2.22222222 2.77777778 3.33333333 3.88888889 4.44444444 5. ]
- np.random.rand()、np.random.randn():
用法:生成指定形状的随机数数组。示例:
import numpy as np
rand_arr = np.random.rand(2, 2)
randn_arr = np.random.randn(2, 2)
print(rand_arr)
print(randn_arr)
用法:改变数组的形状。示例:
import numpy as np
arr = np.arange(9)
reshaped_arr = arr.reshape(3, 3)
print(reshaped_arr)
- np.sum()、np.mean()、np.median():
用法:分别计算数组的总和、平均值和中位数。示例:
import numpy as np
arr = np.array([[1, 2, 3], [4, 5, 6]])
print(np.sum(arr))
print(np.mean(arr))
print(np.median(arr))
用法:返回数组中的最大值和最小值。示例:
import numpy as np
arr = np.array([1, 2, 3, 4, 5])
print(np.max(arr))
print(np.min(arr))
用法:计算两个数组的点积(内积)。示例:
import numpy as np
arr1 = np.array([1, 2])
arr2 = np.array([3, 4])
dot_product = np.dot(arr1, arr2)
print(dot_product)
用法:将多个数组沿指定轴连接在一起。示例:
import numpy as np
arr1 = np.array([[1, 2], [3, 4]])
arr2 = np.array([[5, 6]])
concatenated_arr = np.concatenate((arr1, arr2), axis=0)
print(concatenated_arr)
学习Numpy的技术路线
入门学习:
如果你还不熟悉 Python,请先学习 Python 的基础知识,包括变量、数据类型、条件语句、循环等。
阅读 NumPy 的官方文档,学习 NumPy 数组(ndarray)的创建、索引、切片等基本操作。
熟悉 NumPy 中的数学函数,如三角函数、指数函数、对数函数等。
了解 NumPy 的广播(Broadcasting)机制。
完成一些基本的 NumPy 数组操作的练习,例如数组创建、索引、切片、数组运算等。
进阶学习:
学习 NumPy 中更高级的数组操作,包括数组的合并、拆分、重塑等。理解 NumPy 中的排序、搜索等函数的使用方法。
学习 NumPy 提供的线性代数操作,如矩阵乘法、求逆、求行列式、特征值分解、奇异值分解等。
了解 NumPy 中的随机数生成函数,包括不同概率分布的随机数生成方法。
学习使用 NumPy 将数据保存到文件或从文件加载数据的方法。
高级学习:
学习如何将 NumPy 与其他科学计算库(如 SciPy、Pandas)以及数据可视化库(如 Matplotlib)整合使用。性能优化:
学习如何使用 NumPy 的高级特性进行性能优化,包括矢量化操作、内存优化等。
参与一些实际项目,尝试将 NumPy 应用到实际问题中,加深对其理解。