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

python中h5py開源庫(kù)的使用樣例詳解

 更新時(shí)間:2022年05月18日 16:38:52   作者:燕陽(yáng)天  
這篇文章主要介紹了python中的h5py開源庫(kù)的使用,本文只是簡(jiǎn)單的對(duì)h5py庫(kù)的基本創(chuàng)建文件,數(shù)據(jù)集和讀取數(shù)據(jù)的方式進(jìn)行介紹,需要的朋友可以參考下

一、h5py模塊介紹

本文只是簡(jiǎn)單的對(duì)h5py庫(kù)的基本創(chuàng)建文件,數(shù)據(jù)集和讀取數(shù)據(jù)的方式進(jìn)行介紹!如果讀者需要進(jìn)一步詳細(xì)的學(xué)習(xí)h5py的更多知識(shí),請(qǐng)參考h5py的官方文檔。

h5py簡(jiǎn)單介紹

一個(gè)HDF5文件是一種存放兩類對(duì)象的容器:dataset和group. Dataset是類似于數(shù)組的數(shù)據(jù)集,而group是類似文件夾一樣的容器,它好比python中的字典,有鍵(key)和值(value),存放dataset和其他group。在使用h5py的時(shí)候需要牢記一句話:groups類比字典dataset類比Numpy中的數(shù)組。

HDF5的dataset雖然與Numpy的數(shù)組在接口上很相近,但是支持更多對(duì)外透明的存儲(chǔ)特征,如:數(shù)據(jù)壓縮,誤差檢測(cè),分塊傳輸

二、h5py模塊使用

h5py創(chuàng)建的文件后綴名為:.hdf5

1、h5py接口簡(jiǎn)單介紹

h5py模塊的使用主要分成兩步走:

  • 1)創(chuàng)建.hdf5類型文件句柄(創(chuàng)建一個(gè)對(duì)象) # 讀取文件把“w”改成“r”

f=h5py.File("myh5py.hdf5","w")

  • 2)創(chuàng)建數(shù)據(jù)(dataset)或組(group)

創(chuàng)建數(shù)據(jù)(dataset):

f.create_dataset(self, name, shape=None, dtype=None, data=None, **kwds)

創(chuàng)建組(group):

create_group(self, name, track_order=False)

2、h5py的使用樣例

  • 創(chuàng)建一個(gè)h5py文件
import h5py
#要是讀取文件的話,就把w換成r
f=h5py.File("myh5py.hdf5","w")

在當(dāng)前目錄下會(huì)生成一個(gè)myh5py.hdf5文件

  • 創(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)建了一個(gè)存放20個(gè)整型元素的數(shù)據(jù)集,并沒有賦值,默認(rèn)全是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í)候就賦值,這個(gè)時(shí)候就不必指定數(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這三個(gè)數(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)建一個(gè)名字為bar的組
g1=f.create_group("bar")
#在bar這個(gè)組里面分別創(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的名字是不是有點(diǎn)和前面的不一樣,如果是直接創(chuàng)建的數(shù)據(jù)集,不在任何組里面,那么它的名字就是/+名字,現(xiàn)在這兩個(gè)數(shù)據(jù)集都在bar這個(gè)group(組)里面,名字就變成了/bar+/名字,是不是有點(diǎn)文件夾的感覺!繼續(xù)看下面的代碼,你會(huì)對(duì)group和dataset的關(guān)系進(jìn)一步了解。

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)建一個(gè)組car1和一個(gè)數(shù)據(jù)集dset1。
c1=g1.create_group("car1")
d1=g1.create_dataset("dset1",data=np.arange(10))
#在bar2組里面創(chuàng)建一個(gè)組car2和一個(gè)數(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這個(gè)組下面的組和數(shù)據(jù)集
print(".............")
for key in g1.keys():
    print(g1[key].name)

#bar2這個(gè)組下面的組和數(shù)據(jù)集
print(".............")
for key in g2.keys():
    print(g2[key].name)
#順便看下car1組和car2組下面都有什么,估計(jì)你都猜到了為空。
print(".............")
print(c1.keys())
print(c2.keys())
輸出:
.............
/bar1
/bar2
/dset
.............
/bar1/car1
/bar1/dset1
.............
/bar2/car2
/bar2/dset2
.............
[]
[]

Reference:

1、blog.csdn.net/csdn1569884…

2、blog.csdn.net/yudf2010/ar…

到此這篇關(guān)于python中h5py開源庫(kù)的使用的文章就介紹到這了,更多相關(guān)python h5py開源庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • PyQt5 pyqt多線程操作入門

    PyQt5 pyqt多線程操作入門

    本篇文章主要介紹了PyQt5 pyqt多線程操作入門,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2018-05-05
  • pandas DataFrame 警告(SettingWithCopyWarning)的解決

    pandas DataFrame 警告(SettingWithCopyWarning)的解決

    這篇文章主要介紹了pandas DataFrame 警告(SettingWithCopyWarning)的解決,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Python基礎(chǔ)知識(shí)之變量的詳解

    Python基礎(chǔ)知識(shí)之變量的詳解

    這篇文章主要介紹了Python基礎(chǔ)知識(shí)之變量的詳解,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)python的小伙伴們有很好的幫助,需要的朋友可以參考下
    2021-04-04
  • 用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法

    用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法

    今天小編就為大家分享一篇用pyqt5 給按鈕設(shè)置圖標(biāo)和css樣式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • python常用時(shí)間庫(kù)time、datetime與時(shí)間格式之間的轉(zhuǎn)換教程

    python常用時(shí)間庫(kù)time、datetime與時(shí)間格式之間的轉(zhuǎn)換教程

    Python項(xiàng)目中很多時(shí)候會(huì)需要將時(shí)間在Datetime格式和TimeStamp格式之間轉(zhuǎn)化,下面這篇文章主要給大家介紹了關(guān)于python常用時(shí)間庫(kù)time、datetime與時(shí)間格式之間轉(zhuǎn)換的相關(guān)資料,需要的朋友可以參考下
    2023-02-02
  • 使用Python+Splinter自動(dòng)刷新12306火車票

    使用Python+Splinter自動(dòng)刷新12306火車票

    一年一度的春運(yùn)又來了,今年我自己寫了個(gè)搶票腳本,下面小編給大家分享使用Python+Splinter自動(dòng)刷新12306火車票,需要的朋友參考下吧
    2018-01-01
  • scrapy框架中用ssh連接遠(yuǎn)程服務(wù)器的實(shí)現(xiàn)

    scrapy框架中用ssh連接遠(yuǎn)程服務(wù)器的實(shí)現(xiàn)

    本文主要介紹了scrapy?框架中用ssh連接遠(yuǎn)程服務(wù)器的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-01-01
  • Python編程functools模塊創(chuàng)建修改的高階函數(shù)解析

    Python編程functools模塊創(chuàng)建修改的高階函數(shù)解析

    本篇文章主要為大家介紹functools模塊中用于創(chuàng)建、修改函數(shù)的高階函數(shù),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2021-09-09
  • python 實(shí)現(xiàn)控制鼠標(biāo)鍵盤

    python 實(shí)現(xiàn)控制鼠標(biāo)鍵盤

    這篇文章主要介紹了python 控制鼠標(biāo)鍵盤的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下
    2020-11-11
  • python tkinter界面居中顯示的方法

    python tkinter界面居中顯示的方法

    今天小編就為大家分享一篇python tkinter界面居中顯示的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評(píng)論