1. 创建numpy数组/矩阵
import numpy as np
print(np.__version__) # 查看版本
创建
np_arr = np.array([x for x in range(10)])
print(np_arr)
修改
np_arr[0] = 100 # 与list基本类似
print(np_arr)
查看类型
np_arr.dtype
特殊矩阵的创建:
创建都是0的数组, 默认为float
np.zeros(10)
np.zeros(10, dtype='int')
np.zeros((3,5)) # 三行五列
#### 或者
np.zeros(shape=(3,5))
创建全1矩阵
np.ones((3,5))
其他数字矩阵
np.full(shape = (2,4), fill_value=3)
创建随机数矩阵:
生成随机整数
np.random.randint(0, 10,10) # 随机生成从0到10的一维10个随机数,这是左开右闭的
np.random.randint(0, 10, size = (3,5))
生成符合某种分布的随机数
np.random.normal(10,100) # 正态分布,指定均值和方差
np.random.normal(0,1,size = (3,4))
2. numpy数组/矩阵的基本操作
X = np.arange(15).reshape(3,5)
X.ndim # 二维数组 (输出几维)
X.shape # 三行五列
X.size
X[:2, :3] # 前两行前三列
X[:2, ::2] # 前两行,列是隔一行取一列
3. 合并
A = np.array([[1,2,3],
[4,5,6]])
# 列拼接
np.concatenate([A, A], axis = 1) # axis默认为0
np.vstack([A, np.array([6,6,6])])
np.hstack([A, np.full((2,2), 100)])
4. 分割
np.split(np.arange(10), [2,6]) # 向量
np.split(A, [1]) # 矩阵, 默认分割行
np.split(A, [2], axis=1) # 按列分割
np.vsplit(A, [1]) # 分割出上下
np.hsplit(A, [2]) # 分割出左右
np.tile(A, [2]) # 重复数组
5. 索引
big = np.arange(1000000)
#### 最小值的索引
np.argmin(big)
x = np.arange(16)
np.random.shuffle(x)
排序
np.sort(x)
快速排序
以3位分割点,3前面的都比3要小,但是不一定按照大小排序
np.random.shuffle(x)
np.partition(x, 3)