numpy中的savez()同時儲存陣列、字串、字典資料
阿新 • • 發佈:2018-11-10
python使用numpy中的savez()儲存非陣列資料到本地。
報錯:
IndexError: only integers, slices (`:`), ellipsis (`...`), numpy.newaxis (`None`) and integer or boolean arrays are valid indices
看下面的程式碼例項:
import numpy as np
# 簡單的陣列儲存
arr = np.array([[1, 2], [3, 4]])
np.save('/Users/lilong/Desktop/mm.npy',arr)
arr_load= np.load('/Users/lilong/Desktop/mm.npy')
print(arr_load,'\n\n',arr_load[0])
# 非結構化資料儲存
str_ = 'abc'
arr_ = np.array([[1, 2], [3, 4]])
dict_ = {'a' : 1, 'b': 2}
np.savez('/Users/lilong/Desktop/nn.npz', st= str_, ar = arr_, dic= dict_)
data = np.load('/Users/lilong/Desktop/nn.npz')
print('....\n',data['st'],'\n' ,data['st'][()])
print('....\n',data['ar'],'....\n',data['ar'][0],'\n\n',data['ar'][()][0])
print('....\n',data['dic'],'\n\n',data['dic'][()])
#print('....\n',data['dic']['a']) # 報錯
print('....\n',data['dic'][()]['a'])
執行結果:
[[1 2]
[3 4]]
[1 2]
....
abc
abc
....
[[1 2]
[3 4]] ....
[1 2 ]
[1 2]
....
{'a': 1, 'b': 2}
{'a': 1, 'b': 2}
....
1