Numpy
一. Numpy的优势[重点]
- 是什么: 是一个Python开源科学计算库
- 核心类: ndarray, 用于表示任意维度的数字
- numpy优势:
- 内存风格:
ndarray: 元素直接就是数据, 要求元素类型必须一致, 速度快
list: 元素是真实数据的地址, 数据类型可以不一致, 速度慢 - ndarray; 支持向量化并行运算
- numpy底层使用C语言实现的, 解除GIL锁限制, 所以速度更快.
- 内存风格:
二. N维数组-ndarray[*]
- 属性:
- 形状: shape (重点)
- 维度: ndim
- 元素个数: size
- 元素元素长度(字节) : itemsize
- 元素数据类型: dtype
- 数据类型:
- 整数: np.int32, np.int64
- 浮点数: np.float64
- 字符串: np.string_
三. 基本操作[***]
1 生成数组的方法
-
生成0和1的数组
- 根据形状生成全1的数组:
- np.ones(shape, dtype)
- 根据已知数组的形状生成全1的数组:
- np.ones_like(数组, dtype)
- 根据形状生成全0的数组:
- np.zeros(shape, dtype)
- 根据已知数组的形状生成全0的数组:
- np.zeros_like(数组, dtype)
- 根据形状生成全1的数组:
-
从现有数组生成
- 深拷贝: np.array(), 产生新的内存空间
- 浅拷贝: np.asarray() , 只是赋值操作, 拷贝的引用.
-
生成固定范围的数组
- 生成等间隔数组(重点):
- np.linspace(start, end, nums, endpoint, dtype)
- 根据起始值,结束值以及步长生成数组(类似于Python的range方法)(重点):
- np.arange(start, end, step, dtype)
- 从10^start, 10^end生成num个等比序列:
- np.logspace(start, end, num)
- 生成等间隔数组(重点):
-
均匀分布
- 概念: 生成的数组中每一个元素是等概率的.
- API: np.random.uniform(low, high, size)
- 参数:
- low: 下限
- high: 上限(不包含)
- size: 形状
# 绘制均匀分布的分布图 import matplotlib.pyplot as plt # 准备数据 arr = np.random.uniform(size=10000000) # 创建画布 plt.figure(figsize=(