h5py无法将元素0转换为hsize_t - python

我在hdf5-文件中有大量图像,我想加载和分析这些图像。每个图像都是1920x1920 uint16,然后将它们全部加载到内存中会使计算机崩溃。有人告诉我,其他人可以通过切片图像来解决此问题,例如如果数据是1920x1920x100(100张图像),则它们读取每个图像的前80行并分析该切片,然后移至下一个切片。我可以毫无问题地做到这一点,但是当我尝试在hdf5文件中创建数据集时,它会收到TypeError:无法将元素0 ...转换为hsize_t

我可以使用以下非常简化的代码来重新创建问题:

with h5py.File('h5file.hdf5','w') as f:
    data = np.random.randint(100, size=(15,15,20))
    data_set = f.create_dataset('data', data, dtype='uint16') 

它给出了输出:

TypeError: Can't convert element 0 ([[29 50 75...4 50 28 36 13 72]]) to hsize_t 

我也尝试省略“ data_set =”和“ dtype ='uint16'”,但仍然出现相同的错误。代码如下:

with h5py.File('h5file.hdf5','w') as f:
    data = np.random.randint(100, size=(15,15,20))
    f.create_dataset('data', data) 

谁能给我任何有关问题所在的提示?
干杯!

参考方案

create_dataset的第二个参数是shape参数(请参见docs),但是您传递了整个数组。如果要使用现有数组初始化数据集,则必须使用data关键字进行指定,如下所示:

data_set = f.create_dataset('data', data=data, dtype="uint16") 

在返回'Response'(Python)中传递多个参数 - python

我在Angular工作,正在使用Http请求和响应。是否可以在“响应”中发送多个参数。角度文件:this.http.get("api/agent/applicationaware").subscribe((data:any)... python文件:def get(request): ... return Response(seriali…

R'relaimpo'软件包的Python端口 - python

我需要计算Lindeman-Merenda-Gold(LMG)分数,以进行回归分析。我发现R语言的relaimpo包下有该文件。不幸的是,我对R没有任何经验。我检查了互联网,但找不到。这个程序包有python端口吗?如果不存在,是否可以通过python使用该包? python参考方案 最近,我遇到了pingouin库。

如何用'-'解析字符串到节点js本地脚本? - python

我正在使用本地节点js脚本来处理字符串。我陷入了将'-'字符串解析为本地节点js脚本的问题。render.js:#! /usr/bin/env -S node -r esm let argv = require('yargs') .usage('$0 [string]') .argv; console.log(argv…

Python:传递记录器是个好主意吗? - python

我的Web服务器的API日志如下:started started succeeded failed 那是同时收到的两个请求。很难说哪一个成功或失败。为了彼此分离请求,我为每个请求创建了一个随机数,并将其用作记录器的名称logger = logging.getLogger(random_number) 日志变成[111] started [222] start…

Python-Excel导出 - python

我有以下代码:import pandas as pd import requests from bs4 import BeautifulSoup res = requests.get("https://www.bankier.pl/gielda/notowania/akcje") soup = BeautifulSoup(res.cont…