我有一个多维 ndarray 元组,它进一步包含两个元素 - 第一个是另一个数组,第二个是一个字典。我正在寻找每个元组的第一个元素。基本上制作另一个具有相同形状的数组,但具有每个元组的第一个元素。这是一个示例数据结构:
a = np.array([[([1,2], {"a":1}), ([12,243], {"d":1})],
[([32,24], {"b":1}), ([13,22], {"c":1})]], dtype=object)
我需要来自
a
的以下数组:
b = np.array([[[1,2], [12, 243]],
[[32, 24], [13, 22]]])
我知道这可以使用嵌套 for 循环来完成,但我想避免这种情况,因为它可以有超过 2 个维度。我也尝试过使用 nditer,但我不断收到错误,并且不知道如何处理。非常感谢任何帮助。
a = np.array([[([1,2], {"a":1}), ([12,243], {"d":1})],
[([32,24], {"b":1}), ([13,22], {"c":1})]], dtype=object)
b = a[:,:,0]
print(b)
array([[list([1, 2]), list([12, 243])],
[list([32, 24]), list([13, 22])]], dtype=object)
代码片段:
shape = a.shape
b = a[:, :, 0] # the first element from each tuple
b = np.array(b.tolist())
输出:
[[[ 1 2]
[ 12 243]]
[[ 32 24]
[ 13 22]]]