目录
Python中数据的CSV文件存取
csv(逗号分隔值文件格式)用来存储批量数据
一.数据存储
np.savetxt(frame, array, fmt, delimiter=None)
• frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
• array : 存入文件的数组
• fmt : 写入文件的格式,例如:%d %.2f %.18e
• delimiter : 分割字符串,默认是任何空格
import numpy as np
data = np.random.randint(1,20,(7,8))
print(data)
np.savetxt('first_csv_save.csv',data,fmt='%d',delimiter=' ')
二.数据读取
np.loadtxt(frame, dtype=np.float, delimiter=None, unpack=False)
• frame : 文件、字符串或产生器,可以是.gz或.bz2的压缩文件
• dtype : 数据类型,可选
• delimiter : 分割字符串,默认是任何空格
import numpy as np
load_data = np.loadtxt('first_csv_save.csv',dtype=np.int,delimiter=None,unpack=False)
print(load_data)
三.多维数据存储
a.tofile(frame, sep='', format='%s')
• frame : 文件、字符串
• sep : 数据分割字符串,如果是空串,写入文件为二进制
• format : 写入数据的格式
import numpy as np
data = np.random.randint(1,20,(2,3,4))
print(data)
data.tofile('3D_csv_save.csv',sep=" ",format="%d")
四.多维数据读取
np.fromfile(frame, dtype=float, count=‐1, sep='')
• frame : 文件、字符串
• dtype : 读取的数据类型
• count : 读入元素个数,‐1表示读入整个文件
• sep : 数据分割字符串,如果是空串,写入文件为二进制
import numpy as np
load_data = np.fromfile('3D_csv_save.csv',dtype=int,count=-1,sep=" ")
print(load_data)
np.random的随机数函数
In [18]: a = np.random.rand(3,4,5)
In [19]: a
Out[19]:
array([[[ 0.97845512, 0.90466706, 0.92576248, 0.77775142, 0.84334893],
[ 0.39599821, 0.31917683, 0.7961439 , 0.01324569, 0.97660396],
[ 0.5049603 , 0.80952265, 0.67359257, 0.89334316, 0.94496225],
[ 0.04840473, 0.04665257, 0.20956817, 0.62255095, 0.36600489]],
[[ 0.58059326, 0.28464266, 0.23596248, 0.16677631, 0.86467069],
[ 0.14691968, 0.60863245, 0.71725038, 0.69206766, 0.18301705],
[ 0.73197901, 0.99051723, 0.10489076, 0.33979432, 0.0354286 ],
[ 0.73696453, 0.48268632, 0.99294233, 0.06285961, 0.93090147]],
[[ 0.07853777, 0.827061 , 0.66325364, 0.52289669, 0.96894828],
[ 0.41912388, 0.01883408, 0.80978245, 0.93082898, 0.98095581],
[ 0.58614214, 0.55996867, 0.37734444, 0.79280598, 0.03626233],
[ 0.233132 , 0.22514788, 0.32245147, 0.13739658, 0.18866422]]])
In [28]: a = np.random.randint(100,200,(3,4))
In [29]: a
Out[29]:
array([[116, 111, 154, 188],
[162, 133, 172, 178],
[149, 151, 154, 177]])
NumPy统计函数
默认调用格式:
假设 numpy 库被命名为np
则 np.统计函数名()
一、sum(a, axis=None) :根据给定轴axis计算数组a相关元素之和,axis为整数或元组,不输入axis则对全部元素进行计算。
二、mean(a, axis=None) :根据给定轴axis计算数组a相关元素的期望,axis为整数或元组,不输入axis则对全部元素进行计算。
三、average(a,axis=None,weights=None) :根据给定轴axis计算数组a相关元素的加权平均值,weights表示权重。
四、std(a, axis=None) :根据给定轴axis计算数组a相关元素的标准差。
五、var(a, axis=None) :根据给定轴axis计算数组a相关元素的方差。
六、min(a) max(a) :计算数组a中元素的最小值、最大值。
七、argmin(a) argmax(a): 计算数组a中元素最小值、最大值的降一维后下标。
八、unravel_index(index, shape) :根据shape将一维下标index转换成多维下标。
九、ptp(a) :计算数组a中元素最大值与最小值的差。
十、median(a) :计算数组a中元素的中位数(中值)。
参考资料:
numpy中的统计函数_jayloncheng的博客-CSDN博客_numpy统计函数
案例:
In [47]: a = np.arange(15).reshape(3,5)
In [48]: a
Out[48]:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
In [49]: np.sum(a)
Out[49]: 105
In [50]: np.mean(a,axis=1) # 2. = (0+5+10)/3
Out[50]: array([ 2., 7., 12.])