一文彻底拿下Python中的Numpy框架

程序员Feri一名12年+的程序员,做过开发带过团队创过业,擅长Java、鸿蒙、嵌入式、人工智能等开发,专注于程序员成长的那点儿事,希望在成长的路上有你相伴!君志所向,一往无前!


1.Numpy

Numpy是一个Python科学计算库,提供了高性能的多维数组对象以及对这些数组进行操作的函数。是许多其他数据科学和机器学习库的基础,总而言之,就是可以提高数据计算的库。

在Python的世界里,Numpy就像空气一样无处不在。不仅是数据科学的基石,更是机器学习、图像处理等领域的必备工具。相比Python原生的列表(List),Numpy的数组(Array)有三大杀手锏:

​速度快:运算速度提升10-100倍

​内存省:存储相同数据可节省75%内存

​功能强:支持矩阵运算、广播机制等高级功能

2.安装和初体验

使用pip安装

pip install numpy

验证是否可用,再python文件中,实现如下代码:

# 导入numpy框架
import numpy as np

print(np.__version__)  # 输出版本号

3.numpy核心作用

3.numpy使用

3.1 数组创建

数组的五种创建方式

# 导入numpy框架
import numpy as np

# 从列表创建
arr1 = np.array([1, 2, 3])          # 一维数组
arr2 = np.array([[1, 2], [3, 4]])    # 二维数组

# 特殊数组生成
zeros = np.zeros((3,3))    # 3x3全零矩阵
print("3x3全零矩阵:")
print(zeros)
ones = np.ones((2,4))      # 2x4全一矩阵
print("2x4全一矩阵:")
print(ones)
eye = np.eye(3)            # 3x3单位矩阵
print("3x3单位矩阵:")
print(eye)

# 数值范围生成
range_arr = np.arange(0, 10, 2)  # [0 2 4 6 8]
print("数值范围:整数")
print(range_arr)

lin_arr = np.linspace(0, 1, 5)   # [0.   0.25 0.5  0.75 1.  ]
print("数值范围:小数")
print(lin_arr)

# 随机数组
rand_arr = np.random.rand(2,3)  # 2x3的随机矩阵(0-1均匀分布)
print("随机数组:")
print(rand_arr)

normal_arr = np.random.normal(0, 1, (3,3))  # 正态分布矩阵
print("正态分布矩阵:")
print(normal_arr)

3.2 数组变形

# 导入numpy框架
import numpy as np

arr = np.arange(12)

print(arr.reshape(3,4))   # 改为3行4列
print(arr.reshape(2,3,2)) # 三维数组
print(arr.flatten())      # 展平为一维
print(arr.T)              # 转置(二维时有效)

3.3 数组的索引

# 导入numpy框架
import numpy as np

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

print(arr[0, 1])   # 输出2(第0行第1列)
print(arr[1:3, :2])# 获取第1-2行的前两列

# 布尔索引
mask = arr > 5
print(arr[mask])  # 输出所有大于5的元素

# 花式索引
print(arr[[0,2], [1,1]])  # 取(0,1)和(2,1)位置的值

3.4 数组运算:向量化操作

Numpy的核心魔法:无需循环即可操作整个数组

# 导入numpy框架
import numpy as np

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

print(a + b)   # [5 7 9]
print(a * 2)   # [2 4 6]
print(np.sin(a))  # 计算每个元素的正弦值

3.5 广播机制

当数组形状不同时,Numpy会自动扩展较小数组

# 导入numpy框架
import numpy as np

A = np.array([[1,2], [3,4]])
B = np.array([10, 20])

print(A + B)  # [[11 22], [13 24]]

3.6 统计函数

# 导入numpy框架
import numpy as np

arr = np.random.randn(100)  # 100个正态分布随机数

print("平均值:s%"+np.mean(arr))     # 平均值
print("标准差:"+np.std(arr))      # 标准差
print("90分位数:"+np.percentile(arr, 90))  # 90分位数

3.7 线性代数

# 导入numpy框架
import numpy as np
A = np.array([[1,2], [3,4]])
B = np.array([[5,6], [7,8]])

print("矩阵乘法:",A.dot(B))        # 矩阵乘法
print("行列式:",np.linalg.det(A))  # 行列式
print("逆矩阵:",np.linalg.inv(A))  # 逆矩阵


学习Numpy就像学骑自行车,刚开始可能会摇摇晃晃,但一旦掌握核心技巧,你就能在数据科学的赛道上飞驰!现在打开你的Python编辑器,动手实践这些代码吧!

好啦,就到这里啦,加油,努力!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值