溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python怎么讀取npy文件數據

發(fā)布時間:2022-04-14 13:37:43 來源:億速云 閱讀:3068 作者:iii 欄目:開發(fā)技術

這篇文章主要介紹“python怎么讀取npy文件數據”的相關知識,小編通過實際案例向大家展示操作過程,操作方法簡單快捷,實用性強,希望這篇“python怎么讀取npy文件數據”文章能幫助大家解決問題。

注:.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)

python怎么讀取npy文件數據

2. 實戰(zhàn)案例

在深度神經網絡訓練過程中通常需要讀取預訓練權重,預訓練權重通常是 .npy文件,比如vgg16.npy。本次就以分析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)

python怎么讀取npy文件數據

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

注: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)

看看結果:

python怎么讀取npy文件數據

python怎么讀取npy文件數據

可以發(fā)現,這是第一個卷積層的權重參數,輸入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文件數據”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關的知識,可以關注億速云行業(yè)資訊頻道,小編每天都會為大家更新不同的知識點。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI