数组的函数及运算-----(二)

一.文件操作

a.二进制文件操作 b.文本文件

.npy/.npz文件:二进制文件,必须通过numpy来操作

# 二进制文件的生成与读取
arr3=np.random.random(20).reshape((10,2))
np.save("arr.npy",arr3)    #后缀名可以省略
# 读取二进制文件
np.load("arr.npy")    # 完整的名字+后缀名

'''array([[ 0.71585413,  0.7233967 ],
       [ 0.42144233,  0.53173172],
       [ 0.36895802,  0.6612081 ],
       [ 0.04507593,  0.28499894],
       [ 0.39918837,  0.87012763],
       [ 0.83120754,  0.18121119],
       [ 0.77290246,  0.43848251],
       [ 0.37331089,  0.25775575],
       [ 0.45142842,  0.18840359],
       [ 0.70943353,  0.44261842]])'''

c.多个数组的保存与读取

arr4=np.random.random(30).reshape((5,6))
np.savez("arrz",arr,arr4)
data=np.load("arrz.npz")
print(data)
print(list(data))
print(data['arr_0'])
print(data['arr_1'])

'''
<numpy.lib.npyio.NpzFile object at 0x000000000902A3C8>
['arr_0', 'arr_1']

[[ 1  2 45  6]
 [ 2 56  4 20]
 [45  9 20  2]]
 
[[ 0.95170439  0.33996796  0.16037115  0.83148873  0.39861426  0.33539942]
 [ 0.48761587  0.90423246  0.74530735  0.22047632  0.59736046  0.74680116]
 [ 0.53852805  0.49016618  0.79825141  0.93276207  0.85054562  0.09070053]
 [ 0.48734358  0.51470017  0.21545592  0.11634744  0.33546332  0.61647691]
 [ 0.15530945  0.26540829  0.23117325  0.62900999  0.05243874  0.39182679]]
 '''

d.text文件保存与读取 (fmt=‘整型/默认浮点型’,deliniter=‘用什么分割’)

np.savetxt('arr2',arr2,fmt='%d',delimiter='/')
arr=np.loadtxt('arr2',delimiter='/',dtype='float')
print(arr)

'''
[[ 2.  1.  2.  1.]
 [ 2.  0.  2.  0.]
 [ 1.  1.  2.  1.]
 [ 2.  0.  2.  0.]]
 '''

二.统计分析函数

a.最小值和最大值

arr=np.array([[1,2,45,6],[2,56,4,20],[45,9,20,2]])
print(arr)  
'''
[[ 1  2 45  6]
 [ 2 56  4 20]
 [45  9 20  2]]
 '''   
# 最小值 
print(arr.min())          # 所有元素的最小值       1
print(arr.min(axis=1))    # 获取每一行的最小值     [1 2 2]
print(arr.min(axis=0))    # 获取每一列的最小值     [1 2 4 2]
#最大值
print(arr.max())          # 所有元素的最大值       56  
print(arr.max(axis=1))    # 获取每一行的最大值     [45 56 45]
print(arr.max(axis=0))    # 获取每一列的最大值     [45 56 45 20]

b.最大值索引,最小值索引

print(arr.argmax())       # 先展平在找索引     5        
print(arr.argmin())       # 先展平在找索引     0
print(arr.argmax(axis=1)) # 获取每一行的最大值的索引    [2 1 0] 
print(arr.argmax(axis=0)) # 获取每一列的最大值的索引    [2 1 0 1] 
print(arr.argmin(axis=1)) # 获取每一行的最小值的索引    [0 0 3] 
print(arr.argmin(axis=0)) # 获取每一列的最小值的索引    [0 0 1 2]

c.标准差,方差

# 标准差
print(arr.std())            #19.2635233883
print(arr.std(axis=1))      #[ 18.2825053   21.65063509  16.8597153 ]
print(arr.std(axis=0))      #[ 20.51016008  23.97684068  16.87206765   8.37987006]
# 方差
print(arr.var())            #371.083333333
print(arr.var(axis=1))      #[ 334.25  468.75  284.25]
print(arr.var(axis=0))      #[ 420.66666667  574.88888889  284.66666667   70.22222222]

d.求和与平均值

print(arr.sum())             #210
print(arr.sum(axis=1))       #[54 82 74]
print(arr.sum(axis=0))       #[48 67 69 26]
# 求均值
print(arr.mean())            #17.5
print(arr.mean(axis=1))      #[ 13.5  20.5  18.5]
print(arr.mean(axis=0))      #[ 16.          22.33333333  23.           8.66666667]

e.累计求和

print(arr.cumsum())
print(arr.cumsum(axis=1))
print(arr.cumsum(axis=0))

'''
[  1   3  48  54  56 112 116 136 181 190 210 210]

[[ 1  3 48 54]
 [ 2 58 62 82]
 [45 54 74 74]]
 
[[ 1  2 45  6]
 [ 3 58 49 26]
 [48 67 69 26]]
'''

f.累计求积

print(arr.cumprod())
print(arr.cumprod(axis=1))
print(arr.cumprod(axis=0))

'''
[         1          2         90        540       1080      60480
     241920    4838400  217728000 1959552000  536334336 1072668672]
     
[[    1     2    90   540]
 [    2   112   448  8960]
 [   45   405  8100 16200]]
 
[[   1    2   45    6]
 [   2  112  180  120]
 [  90 1008 3600  240]]
'''
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值