另一个post确实可以满足我的要求,但是我似乎无法在结构化数组上实现。
说我有一个像这样的数组:
>>> arr = np.empty(2, dtype=np.dtype([('xy', np.float32, (2, 2))]))
>>> arr['xy']
array([[[1., 1.],
[2., 2.]],
[3., 3.],
[4., 4.]]], dtype=float32)
我需要填充它,以便每个子数组的最后一行重复特定的次数:
arr['xy'] = np.pad(arr['xy'], [(0, 0), (0, 2), (0, 0)], mode='edge')
但是我遇到ValueError:
ValueError: could not broadcast input array from shape (2, 4, 2) into shape (2, 2, 2)
因此,在没有结构化数组的情况下,我尝试了以下操作:
>>> arr = np.array([[[1, 1], [2, 2]], [[3, 3], [4, 4]]])
>>> arr
array([[[1, 1],
[2, 2]],
[3, 3],
[4, 4]]], dtype=float32)
>>> arr = np.pad(arr, [(0, 0), (0, 2), (0, 0)], mode='edge')
>>> arr
array([[[1, 1],
[2, 2],
[2, 2],
[2, 2]],
[3, 3],
[4, 4],
[4, 4],
[4, 4]], dtype=float32)
为什么不能重复使用结构化数组?
答案 0 :(得分:2)
您的填充有效,是ar [“ xy”]的赋值失败,您无法更改结构的形状。
# Get actual articles for each author
query {
authors {
id
name
owned_articles {
id
title
}
}
}