我是numpy的新手,我在操纵数组。请原谅我缺乏的知识,并随时纠正我的问题的措辞。
说我是否有这个数组
>>> arr = np.zeros((4,4), dtype='uint32')
>>> arr
array([[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0]], dtype=uint32)
我也有这个清单
>>> data = [[1, 2, 3],
[4, 5, 6, 7],
[8, 9]]
现在,我想基本上覆盖数组arr
中的值,并用data
列表中的相应值替换它们。如果列表中该“位置”上没有元素,则arr
中的相应值保持不变,即我要创建此数组:
array([[1, 2, 3, 0],
[4, 5, 6, 7],
[8, 9, 0, 0],
[0, 0, 0, 0]], dtype=uint32)
我们可以假设data
的内部列表的维数永远不会超过arr
的列数,并且data
的内部列表数永远不会超过行数的arr
。
我知道如何使用for
循环和enumerate
来实现所需的功能,但是我也知道numpy具有精美且复杂的索引编制方法。我想问问是否存在使用索引获取我想要的东西的“优雅”方式?
谢谢大家。