您的位置:首頁 > 手機教程 > 蘋果教程 > python讀取npy文件數據實例

python讀取npy文件數據實例

2022-04-14 16:03:49 來源:易采站長站 作者:

python讀取npy文件數據實例

目錄
1. 讀取與保存2. 實戰案例附:python中 .npy文件的讀寫操作實例總結

Numpy binary files (NPY, NPZ)

注:.npy文件是numpy專用的二進制文件。

1. 讀取與保存

import numpy as np

arr = np.array([[1, 2, 3],
               [4, 5, 6]])
np.save('weight.npy', arr)

loadData = np.load('weight.npy')

print("----type----")
print(type(loadData))
print("----shape----")
print(loadData.shape)
print("----data----")
print(loadData)

至于具體API參見:https://docs.scipy.org/doc/numpy/index.html

2. 實戰案例

在深度神經網絡訓練過程中通常需要讀取預訓練權重,預訓練權重通常是 .npy文件,比如vgg16.npy(https://pan.baidu.com/s/1Ru5FJVSPjYTHZwlmzRwRvQ     提取碼:ygxw)。本次就以分析vgg16.npy為例進行說明。

import numpy as np

# 注意編碼方式
pre_train = np.load("vgg16.npy", allow_pickle=True, encoding="latin1")

print("------type-------")
print(type(pre_train))
print("------shape-------")
print(pre_train.shape)
print("------data-------")
print(pre_train)

這是個啥?為啥shape沒有? 但是可以看出來 pre_train 里元素應該是一個字典,我們嘗試取出來。

注:ndarray.item()是復制數組中的一個元素,并將其返回。具體語法參見:https://docs.scipy.org/doc/numpy/reference/generated/numpy.ndarray.item.html?highlight=item#numpy.ndarray.item

import numpy as np

pre_train = np.load("vgg16.npy", allow_pickle=True, encoding="latin1")

data_dic = pre_train.item()

print("------type-------")
print(type(data_dic))
print("------conv1_1  data-------")
print(data_dic['conv1_1'])   # 返回一個列表,該列表有兩個array,表示conv1_1的權重w與偏置b
print("------conv1_1  shape-------")
print((data_dic['conv1_1'][0]).shape)

看看結果:

可以發現,這是第一個卷積層的權重參數,輸入channel是3,輸出channel是64。

附:python中 .npy文件的讀寫操作實例

numpy中的二進制文件的讀寫:

save

np.save ("./文件名", 數組名):以二進制的格式保存數據

load

np.load("./文件名.npy"): 函數是從二進制的文件中讀取數據

savez

np.savez(’./文件名’,數組名1,數組名2,…):savez 函數可以將多個數組保存到一個文件中

(1)save操作

import numpy as np
a=np.arange(5)
np.save('get.npy',a)

(2)load操作

import numpy as np
a=np.load('load.npy')
print(a)

(3)savez操作

import numpy as np
a=np.arange(3)
b=np.arange(4)
c=np.arange(5)
np.savez('array_save.npz',a,b,c)  多個ndarray類型的數組

總結

到此這篇關于python讀取npy文件數據的文章就介紹到這了,更多相關python讀取npy文件內容請搜索易采站長站以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持易采站長站!

如有侵權,請聯系QQ:279390809 電話:15144810328

相關文章

色七七影院_香港三级台湾三级在线播放_男人放进女人阳道猛进猛出