我正在尝试使用以下代码在python中创建一个4维矩阵;
import numpy as np
rho=np.zeros(2,2,2,2)
但我收到以下错误;
rho=np.zeros(2,2,2,2)
TypeError: function takes at most 3 arguments (4 given)
这似乎在matlab中有效,但不在此处。任何帮助,将不胜感激, 谢谢!
答案 0 :(得分:9)
不是传递4个参数,而是传递一个参数,一个由四个元素组成的元组:
>>> rho=np.zeros((2,2,2,2))
>>> rho
array([[[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]],
[[[ 0., 0.],
[ 0., 0.]],
[[ 0., 0.],
[ 0., 0.]]]])
>>> rho.shape
(2, 2, 2, 2)
call signature为zeros(shape, dtype=float, order='C')
,因此它尝试将前2个解释为形状,将第2个解释为类型,将第3个解释为存储顺序,然后它不知道如何处理最后2个。