弗兰的悲惨之旅
99.73M · 2026-04-04
Python的列表虽然灵活,但在大规模数值计算中效率并不理想。 Numpy通过底层C语言实现的高效算法,让我们能够:
一句话总结:Numpy让Python像Matlab一样强大,但更自由。
在命令行中使用pip即可安装:
pip install numpy
安装完成后,使用以下命令验证:
import numpy as np
print(np.__version__)
Numpy的核心数据结构是ndarray,即N维数组对象。
相比Python列表,它有以下优势:
示例:
import numpy as np
arr = np.array([1, 2, 3, 4])
print(arr) # 输出:[1 2 3 4]
print(arr.dtype) # 数据类型
print(arr.ndim) # 数组维度
print(arr.shape) # 形状
Numpy提供了多种快速创建数组的方式:
# 从列表创建
a = np.array([1, 2, 3])
# 创建全零数组
zeros = np.zeros((2,3))
# 创建全一数组
ones = np.ones((3,3))
# 创建等差数列
arange = np.arange(0, 10, 2)
# 创建随机数组
rand = np.random.rand(2,2)
这些函数能帮助我们快速生成所需数据结构,为后续计算打下基础。
arr = np.array([10, 20, 30, 40, 50])
print(arr[1:4]) # [20 30 40]
a = np.array([1,2,3])
b = np.array([4,5,6])
print(a + b) # [5 7 9]
print(a * b) # [4 10 18]
x = np.array([1, 2, 3])
print(np.sqrt(x))
print(np.exp(x))
print(np.mean(x))
A = np.array([[1,2],[3,4]])
B = np.array([[5,6],[7,8]])
print(np.dot(A,B)) # 矩阵乘法
广播机制让不同形状的数组之间也能运算。例如:
a = np.array([[1,2,3],
[4,5,6]])
b = np.array([10,20,30])
print(a + b)
结果:
[[11 22 33]
[14 25 36]]
Numpy会自动扩展b的形状与a匹配,实现高效运算。
import numpy as np
scores = np.array([
[85, 90, 88],
[78, 80, 82],
[90, 95, 92]
])
avg_per_student = np.mean(scores, axis=1)
avg_per_subject = np.mean(scores, axis=0)
print("每个学生平均分:", avg_per_student)
print("每门课平均分:", avg_per_subject)
输出:
每个学生平均分: [87.66666667 80. 92.33333333]
每门课平均分: [84.33333333 88.33333333 87.33333333]
Numpy是Python科学计算的基石,理解并熟练使用它,能让你的程序执行效率成倍提升。 本篇你已经掌握了:
ndarray接下来,你可以进一步学习Numpy的高级索引、线性代数函数、统计分析等内容,为Pandas与机器学习打下坚实基础。