【发布时间】:2019-04-07 17:06:26
【问题描述】:
我有一个包含 1000 行和 1000 列的数据框。我正在尝试使用 for 循环从该数据帧生成一个 numpy 数组,我使用 for 循环在每个循环中随机选择 5 列。我需要附加或连接每个周期生成的每个数组(1000 行和 5 列)。但是,它发现如果不先指定维度,就无法创建 numpy 数组。
我已经尝试了以下代码:
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.choice([0.0, 0.05], size=(1000,1000)))
l = np.array([])
for i in range(0,100):
rand_cols = np.random.permutation(df.columns)[0:5]
df2 = df[rand_cols].copy()
l = np.append(l, df2, axis=0)
但是,我收到以下错误:
ValueError: all the input arrays must have same number of
dimensions
这段代码总结了我正在做的事情,但是,根据这个例子,我需要的结果是一个 1000 行和 500 列的数组,它是由我用每个 for 循环生成的每个数组的串联生成的循环。
【问题讨论】: