一.数据csv文件的存取
1.savetxt(frame,array,fmt,delimiter)
2.loadtxt(frame,dtype,delimiter)
注意:csv只能有效存储一维或者二维数据
In [17]:
import numpy as np
”’
a=np.arange(100).reshape(5,20)
print(‘a’,a)
savetxt()保存文件
np.savetxt(‘a.csv’,a,fmt=’%.1f’,delimiter=’,’)
b=np.loadtxt(‘a.csv’,delimiter=’,’)
b=np.loadtxt(‘a.csv’,dtype=np.int,delimiter=’,’)
print(‘b’,b)
”’
a [[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]]
b [[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19]
[20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39]
[40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59]
[60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79]
[80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99]]
二.多维数据的存取
1.tofile(frame,sep=”,format=’%s’) 通过数组对象来调用
2.fromfile(frame,dtype=float,count=-1,sep=”) 通过np来调用,读取的是一维数组,后期需要通过reshape()转换成多维数组
3.np.save(fname,array),
4.np.load(fname)
In [39]:
a.tofile(),np.fromfile()
”’
a=np.arange(100).reshape(5,2,10)
print(‘a’,a)
a.tofile(‘b.dat’,sep=’,’,format=’%d’)
c=np.fromfile(‘b.dat’,dtype=np.float,sep=’,’).reshape(5,2,10)
print(‘c’,c)
”’
np.save(),np.load()
c=np.arange(100).reshape(5,2,10)
print(‘c’,c)
np.save(‘c.npy’,c)
d=np.load(‘c.npy’)
print(‘d’,d)
c [[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]]
[[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]]
[[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]]
[[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]]
[[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]]
d [[[ 0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]]
[[20 21 22 23 24 25 26 27 28 29]
[30 31 32 33 34 35 36 37 38 39]]
[[40 41 42 43 44 45 46 47 48 49]
[50 51 52 53 54 55 56 57 58 59]]
[[60 61 62 63 64 65 66 67 68 69]
[70 71 72 73 74 75 76 77 78 79]]
[[80 81 82 83 84 85 86 87 88 89]
[90 91 92 93 94 95 96 97 98 99]]]
三.Numpy的随机函数
1.np.random.rand(),randn(),randint(),seed()
In [135]:
rand() 根据传入的数值(shape),生成[0,1)范围浮点数,均匀分布
”’
import numpy as np
a=np.random.rand(3,4,5)
print(‘a’,a)
”’
randn()根据传入的数值(shape),生成浮点数,符合标准正态分布
”’
import numpy as np
a=np.random.randn(3,4,5)
print(‘a’,a)
”’
randint(),根据传入的最小和最大值确定数组元素范围,shape确定数组形状
seed() 给定的种子值,确定随机数数组
”’
import numpy as np
a=np.random.randint(100,250,(3,4))
print(‘a_1’,a)
np.random.seed(20)
a=np.random.randint(100,250,(3,4))
print(‘a_2’,a)
”’
shuffle() 以数组为参数,改变原数组
permutation 以数组为参数,不改变原数组,返回新的数组
”’
import numpy as np
a=np.random.randint(100,250,(3,4))
print(‘a’,a)
np.random.shuffle(a)
print(‘处理后a:’,a)
b=np.random.permutation(a)
print(‘b’,b)
print(‘a:’,a)
”’
uniform(low,high,size) 均匀分布
normal(loc,scale,size) 均匀分布
”’
import numpy as np
a=np.random.uniform(100,250,(3,4))
print(‘a’,a)
b=np.random.normal(100,250,(3,4))
print(‘b’,b)
”’
poisson(lam,size)
import numpy as np
c=np.random.poisson(0.7,(3,5))
print(‘c’,c)
c [[1 1 2 1 0]
[0 0 2 2 1]
[0 0 1 0 1]]
四.Numpy的统计函数
In [167]:
import numpy as np
”’
a=np.arange(15).reshape(3,5)
print(‘a’,a)
sum()axis默认是None
print(np.sum(a))
mean()axis默认是None
print(np.mean(a,axis=0))
average(a,axis=None,weights=None)
print(np.average(a))
print(np.average(a,axis=0,weights=[10,5,1]))
std()标准差
print(np.std(a))
var()方差
print(np.var(a))
”’
min(),max()
np.random.seed(10)
b=np.random.randint(10,50,(3,5))
print(‘b’,b)
print(‘最小值’,np.min(b))
print(‘最大值’,np.max(b))
argmin(),argmax()计算扁平化后的下标
print(‘降维后的最小值下标值’,np.argmin(b))
print(‘降维后的最大值下标值’,np.argmax(b))
unravel_index(index,shape) 重新塑造成多维下标
print(np.unravel_index(9,b.shape))
ptp()计算最大值和最小值的差
print(np.ptp(b))
median()计算数组的中值
print(np.median(b))
b [[19 46 25 10 38]
[35 39 39 18 19]
[10 46 26 46 21]]
最小值 10
最大值 46
降维后的最小值下标值 3
降维后的最大值下标值 1
(1, 4)
36
26.0
第12章:Numpy入门
12.1 数组的维度
- 一个数据和一组数据的区别
一组数据:按照维度这个元祖进行组织(有组织的一组数据),列表,数组,集合
列表与数组的区别:列表数据类型可以不同,数组的数据类型相同
二维数据:由多个一维数据构成,表格是典型的二维数据
多维数据:在一维或者二维数据的基础之上新增新维度扩展形成
一维数据,二维数据以及多维数据,用Python语言怎么表示
12.2 numpy数组对象:ndarry- Numpy简介:是一个开源的Python科学计算基础库,是Pandas等数据处理或者科学计算库的基础
import numpy as np
为什么需要一个数组对象?不是已经有列表了吗?
可以让一维数组更像单个数据;可以提升运算速度;数组采用的是相同的数据类型,节省运算和存储空间
ndarray的构成部分:实际数据+数据类型等;数组下标从0开始
ndarray对象的属性:通过数组对象来调用,ndim,shape,size,dtype,itemsize(字节为单位)
ndarray在程序中的别名是array
12.3 ndarry数组的元素类型- 主要支持整型,浮点型,复数3种类型
为什么支持这么多种元素类型
12.4 ndarry数组的创建- Python列表,元祖等类型来创建ndarray数组
使用numpy函数来创建ndarray数组
arange(),ones(),zeros()等等
12.5 数组的变换- 通过一些方法进行维度变换和元素类型转换
reshape(shape),resize(shape),swapaxes(ax1,ax2)(调换维度),flatten()(原数组不变返回一维数组)
astype(),tolist()(返回列表类型)
12.6 数组的操作- 数组的索引和切片
一维数据的索引和切片:与Python列表类似;切片[起始值:结束值:步长]
多维数组的索引和切片:
举例三维数组:索引[,,*];切片[起始值:结束值:步长,起始值:结束值:步长,起始值:结束值:步长]
12.7 数组的运算- 数组与标量之间的运算(作用数组每个元素)
numpy一元函数:执行元素级别的运算
abs(),sqrt(),square(),log(),log10(),log2()等
二元函数:针对两个数组进行操作
maximum(x,y),minimum(x,y)等
第13章:Numpy数据存取与函数
13.1 CSV文件存取- csv是一种常见的文件格式,原来存储批量数据
存:np.savetxt(frame,array,fmt,delimiter=None)
取:np.loadtxt(frame,dtype=np.float,delimiter)
csv:只能有效存取一维或者二维数据
13.2 多维数据的存取
- a.tofile(frame,sep=”,format=’%s’) 一般文件格式是*.dat
np.fromfile(frame,dtype,count,sep)
便捷文件存取:
np.save(fname,array) 一般格式是.npy,压缩格式是.npz
np.load(fname)
注意:frame,fname参数都是字符串的形式
13.3 Numpy随机函数
通过Numpy的random字库来调用随机函数
np.random.rand(d0,d1….,dn) 根据d0-dn组成的shape创建随机数组,浮点数[0,1),均匀分布
np.random.randn(d0,d1….,dn) 根据d0-dn组成的shape创建随机数组,标准正太分布
np.random.randint(low[,high,shape]) 根据shape创建随机整数或者整数数组,范围[low,high)
np.random.seed(s) 随机数种子
np.random.shuffle(a)(改变原数组) permutation(a)(不改变原数组,会生成新的数组)
根据数组a在行索引方向上对每一行进行随机排列
np.random.choice(a[,size,replce,p])
从数组a中以概率P来抽取元素,形成shape形状的新数组,replace=False
表示可以重复使用元素
np.random.uniform(low,high,size) 均匀分布
np.random.normal(loc,scale,size) 正态分布,loc均值,scale标准差,
np.random.poisson(lam,size) 泊松分布,lam随机事件发生的概率
13.4 Numpy统计函数
可以通过np直接调用axis=None是统计函数的标配
sum(a,axis=None) 和
mean(a,axis=None) 期望
average(a,axis=None,weights=None) 平均值
std(a,axis=None) 标准差
var(a,axis=None) 方差 等等
13.5 Numpy梯度函数
gradient(a) 计算数组a中元素的梯度,当数组比如是二维时,返回的是两个不同维度的梯度数组