我是python的新手。
我有一个 h2o 框架表,有 1000
行和 25
列,我想将此表转换为 numpy 数组并重新调整为 (5,5(
我使用了以下代码:
mynarray=np.array([np.array(nrows).astype(np.float32).reshape(5,5) for nrows in myh2oframe])
我收到的错误是无法将大小为 1604 的序列复制到尺寸为 1 的数组轴
让我先做一个小的澄清。不能将1000 x 25
数组重塑为5 x 5
数组。原始数组和重塑数组中的元素数量必须相同。
从您的代码来看,看起来您正在尝试将 h2o 帧的每一行、1 x 25
、维度重塑为5 x 5
numpy 数组,这应该会产生一个1000 x 5 x 5
数组,因为有 1000 行。这是一个示例,您可以将其修改/应用于您的特定情况。
import h2o
import numpy as np
# initialize h2o
h2o.init()
# create a (1000, 25) h2o frame with real values (no missing values)
hf = h2o.create_frame(rows=1000, cols=25, real_fraction=1, missing_fraction=0)
# First convert to a pandas df, then to a numpy array
num_array = hf.as_data_frame().as_matrix()
# Reshape the array
reshaped_array = num_array.reshape(1000, 25, 25)
# Check the dimensions of the reshaped array
reshaped_array.shape
# The output should be: (1000, 5, 5)
希望这对您的问题有所帮助。