我有一个函数,我计算一个值如下:
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)。但我无法在程序中做到这一点。我在这里做错了什么?如何从最终矩阵中单独获得值?
发布于 2014-10-17 13:46:15
显然,finalResult是一个1x1的matrix。如果打印finalResult,就会得到finalResult的"str“或”finalResult“表示。矩阵的这种格式不包括文本matrix(和结束);它只显示方括号中的数字。如果在python提示符中输入finalResult,它将返回finalResult的"repr“;其中包括文本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.25https://stackoverflow.com/questions/26418256
复制相似问题