【问题标题】:How to fill an array in python with given list of values and list of indices?如何用给定的值列表和索引列表填充python中的数组?
【发布时间】:2021-02-23 15:31:36
【问题描述】:

将以下内容作为输入的最简单(最快)方法是什么:

M=np.zeros((2,5))  
values=[a,b,c] #a,b and c are integers  
indices=[(1,2,4),(0,2,4)]

并作为输出:

M=[[0,a,b,0,c],[a,0,b,0,c]]

【问题讨论】:

  • 你的意思是M=np.zeros((2,5))?
  • 所以在你的索引中,元组中的数字代表值的去向? (例如: (0,2,4) -> [a, 0 , b, 0 ,c] 正确吗?)
  • “最简单”是什么意思?最短的代码?最地道?曾经想出解决方案的脑力最少?
  • @Reti43 最简单​​的意思是最快
  • @jasonmzx 是的,就是这样

标签: python arrays numpy matrix tuples


【解决方案1】:

尝试索引

M = np.zeros((2,5))
values = [7,8,9]   
indices = np.array([[1,2,4],[0,2,4]])

M[np.arange(M.shape[0])[:,None],indices] = values

print(M)
[[0. 7. 8. 0. 9.]
 [7. 0. 8. 0. 9.]]

【讨论】:

    猜你喜欢
    • 2010-10-26
    • 1970-01-01
    • 2021-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-25
    • 1970-01-01
    • 2022-01-24
    相关资源
    最近更新 更多