python - 迭代 for 循环并应用 np.union1d

标签 python

我想做np.union1d通过迭代 for 循环。 这是我正在使用的代码:

arr = np.empty((1,), dtype=np.int32)
for i in range(2):
    arr = np.union1d(arr, data[df.iloc[i,7]])

data是一本字典,我想根据数据框 df 中定义的键从中提取值。抱歉,我无法为您提供 data 的更多详细信息。 & df因为商业 secret 。运行此循环后,我看到 arr 显示空数组,而 data[df.iloc[i,7]]每次迭代都会生成大约 10K 大小的数组。你能让我知道我做错了什么吗?

最佳答案

为了确定,请检查您的代码实际上不是这样的:

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通过放置一个非常非常小的值作为占位符来初始化数组,所以它将出现在您的最终连接数组中!

关于python - 迭代 for 循环并应用 np.union1d,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48885509/

相关文章:

python - Python 的 csv.reader(filename) 真的返回一个列表吗?好像不是

python - Keras 进度条不适用于 Windows 10

python - django_apscheduler 在 django 启动时删除_all_jobs

python - 如何创建或更新列

python - 在 Scipy 中将 csr 矩阵列的每个元素相乘

python安装零食包

python - 匹配具有交替字符的字符串

python /Tkinter : Using Tkinter for RTL (right-to-left) languages like Arabic/Hebrew?

python - 在 Jupyter Notebook 中导入期间找不到模块

python - 如何使用 Python 请求库调用 API