Numpy入门:数据存取与函数

Numpy数据存取与函数

CSV文件存取

利用Numpy库函数可以实现写入,导出CSV文件
生成CSV文件:
在这里插入图片描述
读入CSV文件:
在这里插入图片描述
对于CSV文件,delimiter要指定为’,’.另外CSV文件只能有效储存一维或二维数组。
示例

import numpy as np
a=np.arange(100).reshape(5,20)
np.savetxt("a.csv",a,"%d",delimiter=',')
生成如下文件:
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



多维数据的存取

csv只能存取一,二为数据。接下来学习多维数据存取。
存储:
在这里插入图片描述
读入:
在这里插入图片描述

示例:

import numpy as np
a=np.arange(20).reshape((5,2,2))
a.tofile("a.dat",sep=',',format='%d')
#存入的文件没有保存维度信息:
#[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
b=np.fromfile("a.dat",sep=',',dtype=np.int)
b.resize((5,2,2))
#还原维度信息

由以上示例可以发现tofile的存储方式不保留维度信息,数据类型,分隔符(注意fromfile的sep参数要与原数据一致,也可都为二进制)。还原时需要这些信息才能还原,故还需一个文件保存这些信息以便还原。

Numpy还提供更方便的方法:
在这里插入图片描述
当然也不是白方便的,需使用使用特定文件类型.npy,.npz。如果对应用没有影响,使用这种方法还是最方便的。

Numpy的随机数函数

Numpy中有random子库
在这里插入图片描述

import numpy as np
a=np.random.rand(2,3)
print(a)
a=np.random.randn(2,3)
print(a)
a=np.random.randint(1,10,(2,3))
print(a)
np.random.seed(10)
a=np.random.randint(1,10,(2,3))
np.random.seed(10)
b=np.random.randint(1,10,(2,3))
#得到的数组a=b,种子相同,生成的数相同

还有一些其他函数:
在这里插入图片描述

import numpy as np
a=np.random.rand(3,4)
print(a)
np.random.shuffle(a)
print(a)
"""
原a数组
[[0.58523716 0.02017891 0.02720525 0.25543001]
 [0.74143182 0.90300087 0.09034887 0.64553608]
 [0.03180861 0.98615991 0.33246186 0.04432774]]
shuffle后
[[0.74143182 0.90300087 0.09034887 0.64553608]
 [0.03180861 0.98615991 0.33246186 0.04432774]
 [0.58523716 0.02017891 0.02720525 0.25543001]]
"""

在这里插入图片描述

import numpy as np
a=np.random.uniform(1,100,(2,5))
print(a)
"""
[[61.11493501 22.18449299 96.10017638 40.27965138 30.20805867]
 [74.83027283 34.33841609 67.34724727 63.89215272 36.36651181]]
"""
a=np.random.normal(2,3,(2,5))
print(a)
"""
[[ 6.21506469 -0.29921213 -0.57054864  1.2303626  -1.62708289]
 [-1.50885303  0.5573968   1.38656625  3.50949399  2.23504523]]
"""
统计函数

在这里插入图片描述
注意对axis的理解,a[x][y][z]中x,y,z,分别代表0,1,2轴。若对x轴操作,则会得到一个b[y][z]的数组,即把x轴的元素通过平均,加权平均等操作降为1了。

import numpy as np
a=np.random.uniform(1,100,(2,5))
print(a)
"""
[[62.26067908 29.00217367 17.8085352  11.10768283 61.59902271]
 [48.3838225  81.78301998 30.3964668   6.51518406 34.66592841]]
"""
b=np.mean(a,axis=0)
print(b)
"""
[55.32225079 55.39259682 24.102501    8.81143345 48.13247556]
"""
c=np.average(a,axis=1,weights=[3,4,5,6,7])
print(c)
"""
[35.58690655 36.24073939]
"""

在这里插入图片描述
第二第三个函数配合使用可以获得最大,最小元素下标。此外,虽然图片中没用,但是这些函数也有aisx参数,通常还有一个out参数,可指定一个array用输出来填充,注意与输出大小要一致。

import numpy as np
b=np.arange(15,0,-1).reshape(3,5)
print(b)
"""
[[15 14 13 12 11]
 [10  9  8  7  6]
 [ 5  4  3  2  1]]
"""
print(np.max(b))
print(np.unravel_index(np.argmin(b),b.shape))
print(np.min(b,axis=0))
c=np.array([3,4,5])
np.ptp(b,axis=1,out=c)
print(c)
"""
15

(2, 4)

[5 4 3 2 1]

[4 4 4]

"""
梯度函数

在这里插入图片描述
在这里插入图片描述
有多维,则返回每一维的梯度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值