我想通过迭代for循环来做np.union1d
。
这是我正在使用的代码:
arr = np.empty((1,), dtype=np.int32)
for i in range(2):
arr = np.union1d(arr, data[df.iloc[i,7]])
data
是一个字典,我想根据我的数据框df
的第8列中定义的键来提取值。抱歉,我无法向您提供data
&的更多详情。 df
因为商业机密。运行此循环后,我看到arr显示空数组,而data[df.iloc[i,7]]
为每次迭代生成大约10K大小的数组。你能告诉我我做错了什么吗?
答案 0 :(得分:1)
为了确定,请检查您的代码实际上是不是这样:
for i in range(2):
arr=np.empty((1,), dtype=np.int32)
arr=np.union1d(arr, data[df.iloc[i,7]])
如果没有,我将按以下方式进行调试
for i in range(2):
new_arr = data[df.iloc[i,7]]
print(type(new_arr)) # check that it's an array
print(new_arr.shape) # check that first dim > 1, second dim = 1
一旦你开始工作,我还建议初始化arr = []
,因为np.empty
通过将一个非常小的值作为占位符来初始化数组,因此它将出现在最终的连接数组中! / p>