【问题标题】:Python/Numpy: Setting values to index rangesPython/Numpy:将值设置为索引范围
【发布时间】:2013-12-28 09:07:38
【问题描述】:

使用 Numpy,我可以像这样创建一个 5 维数组:

>>> faces = numpy.zeros((3, 3, 3, 6, 3))

我希望将(all indexes, all indexes, 0, 4) 设置为(1., 1., 1.)。仅使用 Numpy(无 Python 循环)是否可以做到这一点?

【问题讨论】:

    标签: python arrays numpy


    【解决方案1】:

    以下两个都可以:

    faces[:,:,0,4] = 1
    
    faces[:,:,0,4] = (1, 1, 1)
    

    第一个通过让 NumPy 将 1 广播到正确的维度来使用所有三个值相同的事实。

    第二个更通用一点,您可以为三个元素分配不同的值。

    【讨论】:

    • 有没有办法可以将切片符号放在一个元组中以某种方式传递给 Numpy?
    • @Synthead,你可以使用slice(None), slice(None), 0, 4
    【解决方案2】:

    Numpy slice notation 支持直接这样做

    f[:,:,0,4] = 1.0
    

    【讨论】:

      猜你喜欢
      • 2018-05-11
      • 2014-03-25
      • 2012-07-08
      • 1970-01-01
      • 2013-03-09
      • 2019-06-18
      • 1970-01-01
      • 2019-08-25
      • 1970-01-01
      相关资源
      最近更新 更多