Python Numpy矩阵必须是二维误差

Python Numpy矩阵必须是二维误差,python,numpy,Python,Numpy,我有以下代码: import numpy as np def J(x, y): return np.matrix([[8-(4 * y), -4 * y], [y, -5 + x]]) x_0 = np.matrix([[1], [1]]) test = J(x_0[0], x_0[1]) 当我运行它时,我收到以下错误: Traceback (most recent call last): File "broyden.py", line 15, in <module>

我有以下代码:

import numpy as np
def J(x, y):
    return np.matrix([[8-(4 * y), -4 * y], [y, -5 + x]])

x_0 = np.matrix([[1], [1]])
test = J(x_0[0], x_0[1])
当我运行它时,我收到以下错误:

Traceback (most recent call last):
  File "broyden.py", line 15, in <module>
    test = J(x_0[0][0], x_0[1][0])
  File "broyden.py", line 12, in J
    return np.matrix([[8-(4 * y), -4 * y], [y, -5 + x]])
  File "/home/collin/anaconda/lib/python2.7/site-packages/numpy/matrixlib/defmatrix.py", line 261, in __new__
    raise ValueError("matrix must be 2-dimensional")
ValueError: matrix must be 2-dimensional
回溯(最近一次呼叫最后一次):
文件“broyden.py”,第15行,在
测试=J(x_0[0][0],x_0[1][0])
文件“broyden.py”,第12行,在J中
返回np.矩阵([[8-(4*y),-4*y],[y,-5+x]]
文件“/home/collin/anaconda/lib/python2.7/site packages/numpy/matrixlib/defmatrix.py”,第261行,在新的__
提升值错误(“矩阵必须是二维的”)
ValueError:矩阵必须是二维的

我不明白为什么我会犯这个错误。一切看起来都是二维的。

x_0[0]的类型仍然是
numpy.matrixlib.defmatrix.matrix
,而不是标量值。 您需要获得一个比例值,以将其视为矩阵元素。试试这个代码

test = J(x_0.item(0), x_0.item(1))

好的,这是有道理的。如果我想从2x2 numpy矩阵的第二行第二列中获取标量值,该怎么办?
x\u 0。项(I,j)
也可以。但是为什么不使用
np.array
而不是
np.matrix