亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python庫h5py入門詳解

 更新時間:2022年03月02日 10:02:38   作者:neu_張康  
本文只是簡單的對h5py庫的基本創(chuàng)建文件,數(shù)據(jù)集和讀取數(shù)據(jù)的方式進行介紹,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文只是簡單的對h5py庫的基本創(chuàng)建文件,數(shù)據(jù)集和讀取數(shù)據(jù)的方式進行介紹,作者剛接觸h5py,完全靠看文檔自學,如果哪里說的不對,歡迎糾正!如果讀者需要進一步詳細的學習h5py的更多知識,請參考h5py的官方文檔。

h5py簡單介紹

h5py文件是存放兩類對象的容器,數(shù)據(jù)集(dataset)和組(group),dataset類似數(shù)組類的數(shù)據(jù)集合,和numpy的數(shù)組差不多。group是像文件夾一樣的容器,它好比python中的字典,有鍵(key)和值(value)。group中可以存放dataset或者其他的group。”鍵”就是組成員的名稱,”值”就是組成員對象本身(組或者數(shù)據(jù)集),下面來看下如何創(chuàng)建組和數(shù)據(jù)集。

1. 創(chuàng)建一個h5py文件

import h5py
#要是讀取文件的話,就把w換成r
f=h5py.File("myh5py.hdf5","w")

在當前目錄下會生成一個myh5py.hdf5文件

2. 創(chuàng)建dataset數(shù)據(jù)集

import h5py
f=h5py.File("myh5py.hdf5","w")
#deset1是數(shù)據(jù)集的name,(20,)代表數(shù)據(jù)集的shape,i代表的是數(shù)據(jù)集的元素類型
d1=f.create_dataset("dset1", (20,), 'i')
for key in f.keys():
? ? print(key)
? ? print(f[key].name)
? ? print(f[key].shape)
? ? print(f[key].value)

輸出:
dset1
/dset1
(20,)
[0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0]

這里我們僅僅創(chuàng)建了一個存放20個整型元素的數(shù)據(jù)集,并沒有賦值,默認全是0,如何賦值呢,看下面的代碼。

import h5py
import numpy as np
f=h5py.File("myh5py.hdf5","w")

d1=f.create_dataset("dset1",(20,),'i')
#賦值
d1[...]=np.arange(20)
#或者我們可以直接按照下面的方式創(chuàng)建數(shù)據(jù)集并賦值
f["dset2"]=np.arange(15)

for key in f.keys():
? ? print(f[key].name)
? ? print(f[key].value)

輸出:
/dset1
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
/dset2
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

如果我們有現(xiàn)成的numpy數(shù)組,那么可以在創(chuàng)建數(shù)據(jù)集的時候就賦值,這個時候就不必指定數(shù)據(jù)的類型和形狀了,只需要把數(shù)組名傳給參數(shù)data。

import h5py
import numpy as np
f=h5py.File("myh5py.hdf5","w")
a=np.arange(20)
d1=f.create_dataset("dset1",data=a)
for key in f.keys():
? ? print(f[key].name)
? ? print(f[key].value)

輸出:
/dset1
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]

現(xiàn)在把這幾種創(chuàng)建的方式混合寫下??聪旅娴拇a

import h5py
import numpy as np
f=h5py.File("myh5py.hdf5","w")
#分別創(chuàng)建dset1,dset2,dset3這三個數(shù)據(jù)集
a=np.arange(20)
d1=f.create_dataset("dset1",data=a)

d2=f.create_dataset("dset2",(3,4),'i')
d2[...]=np.arange(12).reshape((3,4))

f["dset3"]=np.arange(15)

for key in f.keys():
? ? print(f[key].name)
? ? print(f[key].value)

輸出:
/dset1
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19]
/dset2
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
/dset3
[ 0  1  2  3  4  5  6  7  8  9 10 11 12 13 14]

3. 創(chuàng)建group組

import h5py
import numpy as np
f=h5py.File("myh5py.hdf5","w")

#創(chuàng)建一個名字為bar的組
g1=f.create_group("bar")

#在bar這個組里面分別創(chuàng)建name為dset1,dset2的數(shù)據(jù)集并賦值。
g1["dset1"]=np.arange(10)
g1["dset2"]=np.arange(12).reshape((3,4))

for key in g1.keys():
? ? print(g1[key].name)
? ? print(g1[key].value)

輸出:
/bar/dset1
[0 1 2 3 4 5 6 7 8 9]
/bar/dset2
[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

注意觀察數(shù)據(jù)集dset1和dset2的名字是不是有點和前面的不一樣,如果是直接創(chuàng)建的數(shù)據(jù)集,不在任何組里面,那么它的名字就是/+名字,現(xiàn)在這兩個數(shù)據(jù)集都在bar這個group(組)里面,名字就變成了/bar+/名字,是不是有點文件夾的感覺!繼續(xù)看下面的代碼,你會對group和dataset的關系進一步了解。

import h5py
import numpy as np
f=h5py.File("myh5py.hdf5","w")

#創(chuàng)建組bar1,組bar2,數(shù)據(jù)集dset
g1=f.create_group("bar1")
g2=f.create_group("bar2")
d=f.create_dataset("dset",data=np.arange(10))

#在bar1組里面創(chuàng)建一個組car1和一個數(shù)據(jù)集dset1。
c1=g1.create_group("car1")
d1=g1.create_dataset("dset1",data=np.arange(10))

#在bar2組里面創(chuàng)建一個組car2和一個數(shù)據(jù)集dset2
c2=g2.create_group("car2")
d2=g2.create_dataset("dset2",data=np.arange(10))

#根目錄下的組和數(shù)據(jù)集
print(".............")
for key in f.keys():
? ? print(f[key].name)

#bar1這個組下面的組和數(shù)據(jù)集
print(".............")
for key in g1.keys():
? ? print(g1[key].name)


#bar2這個組下面的組和數(shù)據(jù)集
print(".............")
for key in g2.keys():
? ? print(g2[key].name)

#順便看下car1組和car2組下面都有什么,估計你都猜到了為空。
print(".............")
print(c1.keys())
print(c2.keys())

輸出:
.............
/bar1
/bar2
/dset
.............
/bar1/car1
/bar1/dset1
.............
/bar2/car2
/bar2/dset2
.............

 到此這篇關于python庫h5py入門詳解的文章就介紹到這了,更多相關python h5py內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 解決Django連接db遇到的問題

    解決Django連接db遇到的問題

    今天小編大家分享一篇解決Django連接db遇到的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-08-08
  • 收集的幾個Python小技巧分享

    收集的幾個Python小技巧分享

    這篇文章主要介紹了收集的幾個Python小技巧分享,如獲得當前機器的名字、獲取當前工作路徑、獲取系統(tǒng)的臨時目錄等,需要的朋友可以參考下
    2014-11-11
  • Python文件操作的方法

    Python文件操作的方法

    本文詳細講解了Python文件操作的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-12-12
  • pyqt5實現(xiàn)俄羅斯方塊游戲

    pyqt5實現(xiàn)俄羅斯方塊游戲

    這篇文章主要介紹了pyqt5實現(xiàn)俄羅斯方塊游戲,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-01-01
  • 簡單的連接MySQL與Python的Bottle框架的方法

    簡單的連接MySQL與Python的Bottle框架的方法

    這篇文章主要介紹了簡單的連接MySQL與Python的Bottle框架的方法,主要基于mysql-connector插件,需要的朋友可以參考下
    2015-04-04
  • 解決pytorch 損失函數(shù)中輸入輸出不匹配的問題

    解決pytorch 損失函數(shù)中輸入輸出不匹配的問題

    這篇文章主要介紹了解決pytorch 損失函數(shù)中輸入輸出不匹配的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • Python 實現(xiàn)字符串中指定位置插入一個字符

    Python 實現(xiàn)字符串中指定位置插入一個字符

    下面小編就為大家分享一篇Python 實現(xiàn)字符串中指定位置插入一個字符,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-05-05
  • python?replace?空格數(shù)據(jù)處理的實現(xiàn)

    python?replace?空格數(shù)據(jù)處理的實現(xiàn)

    本文主要介紹了python?replace?空格數(shù)據(jù)處理的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-06-06
  • python3實現(xiàn)SMTP發(fā)送郵件詳細教程

    python3實現(xiàn)SMTP發(fā)送郵件詳細教程

    這篇文章主要為大家詳細介紹了python3實現(xiàn)SMTP發(fā)送郵件的詳細教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • python3通過subprocess模塊調(diào)用腳本并和腳本交互的操作

    python3通過subprocess模塊調(diào)用腳本并和腳本交互的操作

    這篇文章主要介紹了python3通過subprocess模塊調(diào)用腳本并和腳本交互的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12

最新評論