成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

h5py快速入門指南

desdik / 2725人閱讀

摘要:下面的文章主要介紹的快速入門指南,翻譯自的官方文檔。當(dāng)使用時(shí),最基本的準(zhǔn)則為類似于字典,類似于中的數(shù)組。所有的和都支持幾個(gè)數(shù)據(jù)位的附屬命名,稱為屬性。

h5py是Python語言用來操作HDF5的模塊。下面的文章主要介紹h5py的快速入門指南,翻譯自h5py的官方文檔:http://docs.h5py.org/en/lates... 。該翻譯僅為個(gè)人學(xué)習(xí)h5py為目的,如有翻譯不當(dāng)之處,請(qǐng)速聯(lián)系筆者或提供正確的翻譯,非常感謝!
安裝

使用Anaconda或者M(jìn)iniconda:

conda install h5py

用Enthought Canopy,可以使用GUI安裝包安裝或用

enpkg h5py

安裝。用pip或setup.py安裝,請(qǐng)參考安裝方式。

核心概念

一個(gè)HDF5文件就是一個(gè)容器,用于儲(chǔ)存兩類對(duì)象:datasets,類似于數(shù)組的數(shù)據(jù)集合;groups,類似于文件夾的容器,可以儲(chǔ)存datasets和其它groups。當(dāng)使用h5py時(shí),最基本的準(zhǔn)則為:

groups類似于字典(dictionaries),dataset類似于Numpy中的數(shù)組(arrays)。

假設(shè)有人給你發(fā)送了一個(gè)HDF5文件, mytestfile.hdf5(如何創(chuàng)建這個(gè)文件,請(qǐng)參考:附錄:創(chuàng)建一個(gè)文件).首先你需要做的就是打開這個(gè)文件用于讀取數(shù)據(jù):

>>> import h5py
>>> f = h5py.File("mytestfile.hdf5", "r")

這個(gè)File對(duì)象是你的起點(diǎn)。那么這個(gè)文件中儲(chǔ)存了什么呢?記住,h5py.File就像一個(gè)Python字典,因此我們可以查看這些鍵值,

>>> list(f.keys())
["mydataset"]

根據(jù)我們的觀察,這個(gè)文件中有一個(gè)dataset,即mydataset. 讓我們把這個(gè)dataset作為Dataset對(duì)象來檢驗(yàn)

>>> dset = f["mydataset"]

我們得到的這個(gè)對(duì)象不是一個(gè)數(shù)組,而是一個(gè)HDF5 dataset. 就像Numpy中的數(shù)據(jù)那樣,datasets有形狀(shape)和數(shù)據(jù)類型(data type)

>>> dset.shape
(100,)
>>> dset.dtype
dtype("int32")

同時(shí)它們也支持?jǐn)?shù)組風(fēng)格的切片操作。下面是你如何完成這個(gè)文件中的一個(gè)dataset的讀寫的方法

>>> dset[...] = np.arange(100)
>>> dset[0]
0
>>> dset[10]
10
>>> dset[0:100:10]
array([ 0, 10, 20, 30, 40, 50, 60, 70, 80, 90])

想要更多參考,請(qǐng)前往File Objects和Datasets.

附錄:創(chuàng)建一個(gè)文件

此時(shí)此刻,你也許會(huì)好奇mytestdata.hdf5是如何創(chuàng)建的。當(dāng)File對(duì)象初始化后,我們通過將模式(mode)設(shè)置為w來創(chuàng)建一個(gè)文件。其它模式(mode)為a(用于讀、寫、新建)和r+(用于讀、寫)。一個(gè)完整的File模式以及它們的含義的列表可參考File對(duì)象。

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

File對(duì)象有幾個(gè)看上去挺有趣的方法。其一為create_dataset,顧名思義,就是通過給定形狀和數(shù)據(jù)類型來創(chuàng)建一個(gè)dataset

>>> dset = f.create_dataset("mydataset", (100,), dtype="i")

File對(duì)象是上下文管理器,因此,下面的代碼也可運(yùn)行

>>> import h5py
>>> import numpy as np
>>> with h5py.File("mytestfile.hdf5", "w") as f:
>>>     dset = f.create_dataset("mydataset", (100,), dtype="i")
Groups和分層結(jié)構(gòu)

“HDF”是“Hierarchical Data Format”的縮寫。每個(gè)HDF5文件中的對(duì)象都有一個(gè)名字(name),它們以類似于POSIX風(fēng)格的分層結(jié)構(gòu)存放,用/分隔符分隔

>>> dset.name
u"/mydataset"

在這個(gè)系統(tǒng)中“文件夾”(folders)被命名為groups. 我們創(chuàng)建的File對(duì)象本身也是一個(gè)group, 在這種情形下是根group(root group),名字為/:

>>> f.name
u"/"

創(chuàng)建一個(gè)子group(subgroup)可以通過一個(gè)巧妙的命令create_group來完成。但是,我們首先需要以讀/寫模式來打開文件

>>> f = h5py.File("mydataset.hdf5", "r+")
>>> grp = f.create_group("subgroup")

所有Group對(duì)象,如同F(xiàn)ile對(duì)象一樣,也有create_*方法:

>>> dset2 = grp.create_dataset("another_dataset", (50,), dtype="f")
>>> dset2.name
u"/subgroup/another_dataset"

順便說一句,你不需要手動(dòng)地創(chuàng)建所有的中間groups. 指定一個(gè)完整的路徑同樣可行

>>> dset3 = f.create_dataset("subgroup2/dataset_three", (10,), dtype="i")
>>> dset3.name
u"/subgroup2/dataset_three"

Groups支持大部分的Python字典風(fēng)格的接口。你可以使用條目獲?。╥tem-retrieval)的語法來獲取這個(gè)文件中的對(duì)象:

>>> dataset_three = f["subgroup2/dataset_three"]

迭代一個(gè)group,就會(huì)產(chǎn)生它的成員的名字:

>>> for name in f:
...     print name
mydataset
subgroup
subgroup2

成員關(guān)系檢測(cè)也可以通過使用名字來實(shí)現(xiàn):

>>> "mydataset" in f
True
>>> "somethingelse" in f
False

你甚至可以使用完整的路徑的名字:

>>> "subgroup/another_dataset" in f
True

它也有你熟悉的keys(), values(), items() 和iter() 的方法,以及get()方法。

因?yàn)榈粋€(gè)group只會(huì)產(chǎn)生它的直屬成員,所以想要迭代一個(gè)完整的文件,可以使用Group的方法visit()和visititems(), 它們通過一個(gè)調(diào)用(callable)來實(shí)現(xiàn):

>>> def printname(name):
...     print name
>>> f.visit(printname)
mydataset
subgroup
subgroup/another_dataset
subgroup2
subgroup2/dataset_three

想要更多參考,請(qǐng)前往Groups.

屬性

HDF5的最好特征之一就是你可以在描述的數(shù)據(jù)后儲(chǔ)存元數(shù)據(jù)(metadata)。所有的groups和datasets都支持幾個(gè)數(shù)據(jù)位的附屬命名,稱為屬性。(All groups and datasets support attached named bits of data called attributes.)

屬性可以通過attrs這個(gè)代理對(duì)象來獲取,這會(huì)再一次執(zhí)行字典接口:

>>> dset.attrs["temperature"] = 99.5
>>> dset.attrs["temperature"]
99.5
>>> "temperature" in dset.attrs
True

想要更多參考,請(qǐng)前往Attributes.

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/44775.html

相關(guān)文章

  • TensorFlow 2.0 / TF2.0 入門教程實(shí)戰(zhàn)案例

    摘要:七強(qiáng)化學(xué)習(xí)玩轉(zhuǎn)介紹了使用創(chuàng)建來玩游戲?qū)⑦B續(xù)的狀態(tài)離散化。包括輸入輸出獨(dú)熱編碼與損失函數(shù),以及正確率的驗(yàn)證。 用最白話的語言,講解機(jī)器學(xué)習(xí)、神經(jīng)網(wǎng)絡(luò)與深度學(xué)習(xí)示例基于 TensorFlow 1.4 和 TensorFlow 2.0 實(shí)現(xiàn) 中文文檔 TensorFlow 2 / 2.0 官方文檔中文版 知乎專欄 歡迎關(guān)注我的知乎專欄 https://zhuanlan.zhihu.com/...

    whataa 評(píng)論0 收藏0
  • 22、Python快速開發(fā)分布式搜索引擎Scrapy精講—scrapy模擬登陸和知乎倒立文字驗(yàn)證碼識(shí)

    【百度云搜索,搜各種資料:http://www.bdyss.cn】 【搜網(wǎng)盤,搜各種資料:http://www.swpan.cn】 第一步。首先下載,大神者也的倒立文字驗(yàn)證碼識(shí)別程序 下載地址:https://github.com/muchrooms/... 注意:此程序依賴以下模塊包   Keras==2.0.1  Pillow==3.4.2  jupyter==1.0.0  matplotli...

    array_huang 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<