将numpy数组值设置为具有不同维度的列表元素

时间:2019-07-04 05:03:34

标签: python arrays numpy

我是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具有精美且复杂的索引编制方法。我想问问是否存在使用索引获取我想要的东西的“优雅”方式?

谢谢大家。

0 个答案:

没有答案