Numpy数据存取与函数-笔记

这篇笔记详细介绍了Numpy中数据的csv文件存取,包括 savetxt() 和 loadtxt() 函数的使用,以及多维数据的存取方法如 tofile()、fromfile()、np.save() 和 np.load()。还探讨了Numpy的随机函数,如 rand()、randn()、randint() 和 seed(),以及统计函数,如 sum()、mean()、std() 和 var() 等。
摘要由CSDN通过智能技术生成

一.数据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中元素的梯度,当数组比如是二维时,返回的是两个不同维度的梯度数组

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值