有两个数组:
{
"task_id2": {
"apikey2": "1235",
"flow": "mobileweb",
"total_chocolate_request": 43235,
"start_time": "2017 - 05 - 09 12: 29: 00 UTC",
"end_time": "2017 - 05 - 09 12: 29: 00 UTC"
}
如何从源数组(a = np.zeros((3, 4), dtype=int)
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
b = np.ones((2, 3), dtype=int)
[[1 1 1]
[1 1 1]]
)分配到源中存在的目标数组(b
)中的条目?
结果数组应为:
a
答案 0 :(得分:5)
您可以简单地获取shape
b
之类的内容:
m,n = b.shape
然后使用切片设置a
中的元素:
a[:m,:n] = b
这会产生:
>>> m,n = b.shape
>>> a[:m,:n] = b
>>> a
array([[1, 1, 1, 0],
[1, 1, 1, 0],
[0, 0, 0, 0]])
如果a
和b
的相同但任意维度,我们可以使用以下生成器:
a[tuple(slice(mi) for mi in b.shape)] = b
再次导致:
>>> a[tuple(slice(mi) for mi in b.shape)] = b
>>> a
array([[1, 1, 1, 0],
[1, 1, 1, 0],
[0, 0, 0, 0]])
但这也适用于3d,4d,...阵列。
答案 1 :(得分:4)
获取要分配的数组的形状,然后slice
目标数组并指定 -
m,n = b.shape
a[:m,:n] = b