首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >矩阵计算Python

矩阵计算Python
EN

Stack Overflow用户
提问于 2014-10-17 13:09:39
回答 1查看 231关注 0票数 1

我有一个函数,我计算一个值如下:

代码语言:javascript
复制
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  

它将结果显示为

代码语言:javascript
复制
      [[ 455.83301538]]
      >>> func
       [matrix([[ 455.83301538]])]

我可以从控制台(IPython)获取final.item(0)。但我无法在程序中做到这一点。我在这里做错了什么?如何从最终矩阵中单独获得值?

EN

回答 1

Stack Overflow用户

发布于 2014-10-17 13:46:15

显然,finalResult是一个1x1的matrix。如果打印finalResult,就会得到finalResult的"str“或”finalResult“表示。矩阵的这种格式不包括文本matrix(和结束);它只显示方括号中的数字。如果在python提示符中输入finalResult,它将返回finalResult的"repr“;其中包括文本matrix(...)。您也可以使用内置函数repr()获取此格式。

例如(使用a而不是finalResult),

代码语言:javascript
复制
>>> 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中,这基本上与下面的内容相同:

代码语言:javascript
复制
>>> [a]
[matrix([[1.25]])]

要从矩阵中获取值,可以使用常规数组索引:

代码语言:javascript
复制
>>> a[0,0]
1.25
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26418256

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档