scipy.io 和 numpy存储矩阵方法的差异
2019-10-24 本文已影响0人
习惯了千姿百态
对两种save 方法进行比较
比较结果,同样的数据,通过.mat 存储后在导入变成了二维的,因为matlab对[4,]和[1,4]没有区别,但python有区别。结论,所以使用的时候要注意些。
import numpy as np
import scipy.io as sio # mat
arr1 = np.array([1,2,3,4])
arr2 = np.array([3,4,5,6])
# sio 是按照字典存的!!
sio.savemat('test.mat', {'arr':arr1})
a = sio.loadmat('test.mat')
# 读取需要的数据
a = a['arr']
np.save('test.npy',arr2)
b = np.load('test.npy', 'r')
print(a,b)
print(a.shape,b.shape)
result:
[[1 2 3 4]] [3 4 5 6]
(1, 4) (4,)
注意:当存储的矩阵>=2维时,两者没有这方面的差异
参考资料:https://blog.csdn.net/raby_gyl/article/details/78368716