1.numpy概述`
numpy计算
numpy计算可以不同的规格,shape一样时可以加减运算。
import numpy as np
array=np.array([1,2,3,4,5])
array+1
array.shape
array([2,3,4,5,6])
一些常用的命令:
type | 类型(字典,list,元组…) |
---|
dtype | 类型(整型,浮点型,布尔型一些…) |
1 | 2 |
ndim | 查看维度 |
astype | 转换类型 |
copy的运用,创建一个新的数组。不改变原来的数组。
a=np.array([1,2,3,4])
b=a.copy()
b[0]=100
a:
array([1,2,3,4])
b:
array([100.2.3.4])
2.array结构:
range(1,10) | 前闭后开 |
---|
arange(0,100,10) | 步长是10,100取不到(前闭后开) |
linspace(0,100,10) | 个数是10,100取到(前闭后闭) |
random.rand(10) | |
random.ranint | |
a=np.array([0,10,20,30,40,50,60,70,80,90])
mask=array([0,0,0,0,0,0,1,1,1,1],dtype='bool')
mask
[False,False,False,False,False,False,True,True,True,True,]
a[mask]
[60,70,80,90]
a=array([0.34173479, 0.77632628, 0.34125884, 0.5262027 , 0.62157668,
0.5484839 , 0.81023541, 0.75616737, 0.61977412, 0.78414371])
mask=a>0.5
mask
array([False, True, False, True, True, True, True, True, True,
True])
a[mask]
array([ 0, 10, 30, 40, 50, 60, 80, 90])
np.where() 查找位置
a=[10,20,30,40,50]
np.where(a>20)
np.where(a>20)
[2,3,4]
a[np.where(a>20)]
[30,40,50]
3.数值计算(axis=0按列)
import numpy as np
tang_array = np.array([[1,2,3],[4,5,6]])
tang_array
np.sum(tang_array)
21
np.sum(tang_array,axis=0)
array([5, 7, 9])
mean() | 平均值 |
---|
round() | 四舍五入 |
min(axis=0/1) | 取每列/行最小值 |
min() | (取所有数的)最小值 |
max() | 最大值 |
argmax() | 最大值的位置 |
var() | 方差 |
std() | 标准差 |
4.排序
sort(axis=0) | 每列排序 |
---|
sort() | 整体排序 |
argsort() | 排序索引 |
lexsort([-1*tang[:,0],tang[:,2]]) | 第一列降序的前提下,对第三列升序 |
5.数组形状
(10,)是一维数组
(10,1)是二维数组
reshape | |
---|
np.newaxis. | 添加新轴 |
squeeze | 压缩轴 |
tang=np.arange(10)
tang1=tang[np.newaxis,:]
输出:
tang
array([0,1,2,3,4,5,6,7,8,9])
tang1
array([[0,1,2,3,4,5,6,7,8,9]])
6.数组的连接
np.concatenate | ()np.concatenate((a,b),axis=0/1) |
---|
np.vstack() | 按列拼接(增加样本数) |
np.hstack() | 按行拼(增加特征数) |
np.flatten | 拉长操作。(2,5)可以拉长成(10,) |
7.数组生成常用函数
linspace() | np.linspace(第一个数,最后一个数,个数) |
---|
zeros() | np.zeros(3) |
ones() | np.ones((3,3)) |
array() | |
empty() | |
fill() | 填充 |
np.zeros_like() | w2=np.zeros_like(w1) |
np.ones_like() | #w2和w1形状一样 |
运算
8.随机模块
np.random.rand | np.random.rand(3,2) |
---|
np.random.randint | np.random.randint(10,size=(2,3) |
np.random.normal() | |
np.set_printoptions(precision=2) | 保留两位小数 |
---|
洗牌
np.random.shuffle() | np.random.shuffle(tang_array) |
---|
随机种子
9.读写
%%writefile tang.txt | 创建一个txt文件 |
---|
np.loadtxt() | loadtxt(“。。。.txt”)读文件 |
np.savetxt() | 保存文件 |