我有一个函数,我在这里计算一个值:
a = a + pow(b - np.dot(A[i,:],B[:,j]), 2)
final_Result= a + C * ((np.square(A)).sum() +(np.square(B)).sum() )
print final_Result
func.extend(final_Result)
# C is a float value
它显示结果为
[[ 455.83301538]]
>>> func
[matrix([[ 455.83301538]])]
我可以从控制台(IPython)获得final.item(0)。但我无法在该计划中这样做。我在这做错了什么?如何从最终矩阵中获取值?
答案 0 :(得分:1)
显然finalResult
是1x1 matrix。如果您打印finalResult
,则会得到" str"或者"很好"代表finalResult
。矩阵的这种格式不包括文本matrix(
和结束)
;它只是在方括号中显示数字。如果你在python提示符中输入finalResult
,它会回复" repr" finalResult
;这包括文字matrix(...)
。您也可以使用内置函数repr()
获取此格式。
例如(使用a
代替finalResult
),
>>> import numpy as np
>>> a = np.matrix([[1.25]])
>>> print(a)
[[1.25]]
>>> a
matrix([[1.25]])
>>> print(repr(a))
matrix([[1.25]])
您将finalResult
放入列表func
,这与此基本相同:
>>> [a]
[matrix([[1.25]])]
要从矩阵中获取值,可以使用常规数组索引:
>>> a[0,0]
1.25