来自 R 我习惯于将一个简单的值分配给一个矩阵 通过使用索引,例如:
> mat <- matrix(NA,2,3)
> mat
[,1] [,2] [,3]
[1,] NA NA NA
[2,] NA NA NA
> mat[1,2] <- 12
> mat
[,1] [,2] [,3]
[1,] NA 12 NA
[2,] NA NA NA
>
现在我必须在 Python 中运行一些脚本并想要收集 二维矩阵中的值也是如此。矩阵应该有列名和行名 我也想通过索引访问它们。 到目前为止我想到了两种方法:
- 使用 RPy 并按照我在 R 中习惯的方式进行操作, 虽然我还不知道索引命令如何与 RPy 一起使用。
喜欢:
import rpy2.robjects as robjects
names = ['A','B','C']
dimnames = robjects.r['list'](names,names)
mat = robjects.r['matrix'](NA, nrow = len(names), ncol=len(names), dimnames = dimnames)
# and here how to index and assign e.g. the value 12 to the cell mat["A","B"]??
- 或者使用 Python 原生 NumPy 数组,这可能是一个更干净的解决方案。目前我只是不知道如何使用名称列表创建矩阵/数组以及如何使用索引分配值。
有什么建议吗?
谢谢!!
最佳答案
我认为DataFrame datatype from pandas ,可能适合您。
import pandas
matrix = pandas.DataFrame(index=['a','b','c'], columns=['one','two'])
返回
one two
a NaN NaN
b NaN NaN
c NaN NaN
您可以更改条目:matrix['one']['a']=1
,以及其他熟悉的 numpy 操作(如 above link 中所述)。
关于python - 通过索引在矩阵中赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12107235/