我有以下情况:
import numpy as np
def func(m):
M = np.zeros((3,3))
M[1,1] = 2*m
return M
print(func(2))
print(func([1,2,3]))
字符串
第一个print函数给出了我想要的结果(M中的(1,1)项变为4)。但是第二个给了我ValueError: setting an array element with a sequence.
。我想做的是打印3个不同的矩阵,数组[1,2,3]中的每个值都有一个(因此对于3个矩阵,(1,1)项将是2,4和6)。如何有效地做到这一点(即不使用for循环)。谢谢你,谢谢
1条答案
按热度按时间9rygscc11#
您是否正在尝试生成3d数组:
字符串
如果你想要3个数组,你可以在第一个维度上分割,例如。
list(M)
。三个不同的数组总是需要python级别的迭代。回复我的评论,小心列表乘法
型
将列表馈送到函数并不“自动”对列表的元素执行迭代。如果你给一个数组赋值也是这样。
列表解析解决方案:
型