python - 数组到矩阵 numpy

标签 python numpy

我有一个提供多个数组的函数,我需要将它们放入一个矩阵中。

def equations(specie, elements):
 for x in specie:
   formula = parse_formula(x)
   print extracting_columns(formula, elements)

我得到了什么:

equations(['OH', 'CO2','C3O3','H2O3','CO','C3H1'], ['H', 'C', 'O']) 
[ 1.  0.  1.]
[ 0.  1.  2.]
[ 0.  3.  3.]
[ 2.  0.  3.]
[ 0.  1.  1.]
[ 1.  3.  0.]

我需要它给我 ([[1,0,1][[ 0., 1., 2.][ 0. , 3. , 3.][ 2. , 0. ,3.][ 0., 1.,1.][ 1., 3., 0.]])

我已经搞乱这个有一段时间了,但无法弄清楚。

如果您需要我过去的功能,它们如下:

def extracting_columns(specie, elements):
  species_vector=zeros(len(elements))
  for (el,mul) in specie:
    species_vector[elements.index(el)]=mul

  return species_vector

最佳答案

不要打印出每一行,而是将它们收集到一个列表中(例如结果):

def equations(specie, elements):
    result = []
    for x in specie:
        formula = parse_formula(x)
        result.append(extracting_columns(formula, elements))
    return np.array(result)
<小时/>

例如,

import numpy as np
import re

def equations(specie, elements):
    result = []
    for x in specie:
        formula = parse_formula(x)
        result.append(extracting_columns(formula, elements))
    return np.array(result)

def extracting_columns(formula, elements):
    return [formula.get(e, 0) for e in elements]

def parse_formula(formula):
    elts = iter(re.split(r'([A-Z][a-z]*)',formula)[1:])
    return {element:toint(num) for element, num in zip(*[elts]*2)}

def toint(num):
    try:
        return int(num)
    except ValueError:
        return 1

print(equations(['OH', 'CO2','C3O3','H2O3','CO','C3H1'], ['H', 'C', 'O']))

产量

[[1 0 1]
 [0 1 2]
 [0 3 3]
 [2 0 3]
 [0 1 1]
 [1 3 0]]

关于python - 数组到矩阵 numpy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13925272/

相关文章:

Python Tkinter 列表框 : fire off a function on change?

python - 进行 train_step.run() 时出现 Tensorflow 错误

python - 从一个列表中的另一个列表的元组中查找元组需要快速算法。套?

python - 如何保持 numpy 数组的精度

python - 如何使用基于Python中列中先前值的函数创建列

python - LU 分解的矩阵乘法问题?

Python/MySqlDB - 使用 raw_input 查询数据库并打印结果

python - 如何在 python 中为 selenium webdriver 导入和导出 FireFox 配置文件

python - 使用字典中的键过滤 pandas DataFrame

Python - 滚动窗口OLS回归估计