python - 通过索引在矩阵中赋值

标签 python arrays r numpy rpy2

来自 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/

相关文章:

r - 如何创建包含每个组的所有点的箱线图,可以手动分配点的颜色

python - 使用 python - 正则表达式重命名文件

python - 在 python 中初始化 MSEdge 浏览器,得到 TypeError : Level not an integer or a valid string: None

c++ - 如何从缓冲区读取特定字符串

c - 如何用C语言的结构体数组实现插入排序?

c++ - 如何使用以下约束动态创建固定长度字符串数组

python - 将模型的名称索引传递到另一个模型的字段中 - Odoo v8

python - 如何在 selenium 远程 webdriver 中指定浏览器二进制文件?

r - 在 R data.frame 中设置从零开始的唯一 ID

r - 如何在R中生成N个最不相似的组合