在 Numpy 中取消选择不删除的列
Deselecting a column without deletion in Numpy
我有一个这种形式的 numpy 数组:
n = [[[5 0 2]
[8 9 7]
[2 2 2]
[5 9 5] <-- target value
[4 1 5]]
[[5 3 9]
[4 2 7]
[7 0 7]
[4 9 6] <-- target value
[3 8 5]]]
我想从每个单独的数组中获取除第 3 行以外的所有值。 IE。结果应该是这样的:
[[[5 0 2]
[8 9 7]
[2 2 2]
[4 1 5]]
[[5 3 9]
[4 2 7]
[7 0 7]
[3 8 5]]]
我尝试使用索引,但无法实现。我有一个大的 numpy 数组,需要在其中完成此操作。除了复制它并使用 delete 方法删除它之外,是否有任何有效的方法来做到这一点。 此外,我不想通过创建副本来利用太多 space,我只想使用索引暂时忽略特定列。
您可以创建所选元素的列表,弹出目标元素:
import numpy as np
n = np.array([[[5,0,2],
[8,9,7],
[2,2,2],
[5,9,5],
[4,1,5]],
[[5,3,9],
[4,2,7],
[7,0,7],
[4,9,6],
[3,8,5]]])
target_element = 3
s = list(range(len(n[0])))
s.pop(target_element)
print(n[:,s])
或
s = list(range(len(n[0])))
print(n[:,s[:target_element] + s[target_element+1:]])
我尝试了这个并且成功了:
You can try using this method:
t = np.array([[[5, 0, 2],
[8, 9, 7],
[2, 2, 2],
[5, 9, 5],
[4, 1, 5]],
[[5, 3, 9],
[4, 2, 7],
[7, 0, 7],
[4, 9, 6],
[3, 8, 5]]])
t[:,[0,1,2,4]]
我有一个这种形式的 numpy 数组:
n = [[[5 0 2]
[8 9 7]
[2 2 2]
[5 9 5] <-- target value
[4 1 5]]
[[5 3 9]
[4 2 7]
[7 0 7]
[4 9 6] <-- target value
[3 8 5]]]
我想从每个单独的数组中获取除第 3 行以外的所有值。 IE。结果应该是这样的:
[[[5 0 2]
[8 9 7]
[2 2 2]
[4 1 5]]
[[5 3 9]
[4 2 7]
[7 0 7]
[3 8 5]]]
我尝试使用索引,但无法实现。我有一个大的 numpy 数组,需要在其中完成此操作。除了复制它并使用 delete 方法删除它之外,是否有任何有效的方法来做到这一点。 此外,我不想通过创建副本来利用太多 space,我只想使用索引暂时忽略特定列。
您可以创建所选元素的列表,弹出目标元素:
import numpy as np
n = np.array([[[5,0,2],
[8,9,7],
[2,2,2],
[5,9,5],
[4,1,5]],
[[5,3,9],
[4,2,7],
[7,0,7],
[4,9,6],
[3,8,5]]])
target_element = 3
s = list(range(len(n[0])))
s.pop(target_element)
print(n[:,s])
或
s = list(range(len(n[0])))
print(n[:,s[:target_element] + s[target_element+1:]])
我尝试了这个并且成功了:
You can try using this method:
t = np.array([[[5, 0, 2],
[8, 9, 7],
[2, 2, 2],
[5, 9, 5],
[4, 1, 5]],
[[5, 3, 9],
[4, 2, 7],
[7, 0, 7],
[4, 9, 6],
[3, 8, 5]]])
t[:,[0,1,2,4]]