【发布时间】:2021-01-23 12:30:27
【问题描述】:
我有两个 numpy 数组 - 一个 6000x4 的大数组和一个 10x1 的小数组。
big_array = array[[1,0.2,0.3,0.4],
[1,10.0,20.0,30.0],
[2,7.0,0.4,0.8]
[2,3,4,5]
...
[150,56,57,89]
[150,78,27,64]]
small_array = array([17, 12, 5, 12, 18, 11, 1, 4, 3, 9])
我想使用小数组中的值创建一个新数组以从大数组中选择值。我可以通过在以下行中输入单个值来实现这一点:
new_array_0 = big_array[big_array[:,0]] == small_array[0]
new_array_1 = big_array[big_array[:,0]] == small_array[1]
我尝试在 for 循环中运行它:
subSet = np.empty((0,4))
for i in small_array:
a = big_array[big_array[:,0]] == small_array[i]
subSet = np.append(subSet,a,axis=0)
但这会导致错误。 有没有 python/numpy 方法来实现这一点?
【问题讨论】:
-
您能否添加一个完整的示例:
big_array、small_array和预期输出? -
我认为出现错误是因为 subSet 和 a 具有不同的形状。不知道如何解决它,除非可能使子集形状 ((,4)) 而不是 ((0, 4))
-
错误是什么?不要只是说有错误并期望我们猜测。自己做一些调试工作!
标签: arrays python-3.x numpy