科学计算基础库,多作为数值计算、在大型、多维数组上执行数值运算。
创建数组
import numpy as np
a = np.array([1,2,3,4,5])
b = np.array(range(1,6))
c = np.arange(1,6)
# 其中 a = b = c
np.arange的用法:arange([start], stop[, step,], dtype=None)
数组的形状
t = np.array([[1,2,3], [4,5,6]])
t.shape # 获取t的形状,即维数
计算
轴
np.loadtxt(frame,dtype=np.float,delimiter=None,skiprows=0,usecols=None,unpack=False)
frame: 文件路径dtype:读取为指定的数据类型delimiter:分割字符串skiprows:跳过的行(如:标题行)
usecols:读取的数据的列
unpack:若为true,矩阵转置
numpy 转置:
(1)transpose()
方法
(2)T
属性
(3)swapaxes(1,0)
方法,0和1分别为轴t[行数]
t[行数:]
,从指定行数开始连续取数组的行t[[1,5,8]]
, 取第1、5、8行t[行,列]
,取指定的行和列,其中:
表示都要,如t[1,:]
表示第二行的所有列例:import numpy as np
t = np.arange(6).reshape((3,2))
print(t[1,:]) # 取第二行的所有列,结果:[2 3]
print(t[2:,:]) # 取第三行之后所有行对应的所有列,结果:[[4 5]]
print(t[[0,2],:]) # 取第一行和第三行的所有列,结果:[[0 1] [4 5]]
print(t[1:3,0:2]) # 取第二行到第三行对应的第1列到第2列,结果:[[2 3] [4 5]]
# 注:其中1:3中3为切片,即含头不含尾,真实值为1到2,所以3对应的是索引为2,而索引为2对应的值为第三行的值。
t[[0,2],[0,1]]
, 取下标为(0,0)和(2,1)对应的值t[t<10]=3
将t中小于10的值np.where(t>10, 0, 20)
将t中小于10 的元素替换为10,大于等于10的赋值为20np.sum(数组)
np.sum(数组,axis=0)
np.sum(数组,axis=1)
t.mean(a,axis=None)
np.median(t,axis=None)
t.max(axis=None)
t.min(axis=None)
np.ptp(t,axis=None)
t.std(axis=None)
np.vstack((t1, t2))
竖直拼接np.hstack((t1, t2))
水平拼接t[[1,2], :] = t[[2,1], :]
行交换
t[:, [1,2]] = t[:, [2,1]]
列交换np.zeros((2,2))
创建全为1的数组:np.ones((2,2))
创建三角方阵:np.eye(2)
获取每列最大值的坐标:np.argmax(数组,axis=0)
获取每行最小值的坐标:np.argmin(数组,axis=1)
创建随机分布数组 np.random.random(2,3)
创建两行三列的随机分布
创建标准正态分布数组 np.random.randn(2,3)
创建两行三列的标准正态分布
创建指定区间的随机整数数组 np.random.randint(start,end,(row, col))