我正在尝试在python中加入履历表,以便将相同的值加入许多元素。下面的代码以1:1的比例工作时有效,但是当我尝试执行很多1:1时,它仅加入一个实例:

import numpy as np
import matplotlib
# First data structure
sex = np.array(['M', 'F', 'M', 'F', 'M', 'F'])
causes = np.array(['c1', 'c1', 'c2', 'c2', 'c3', 'c3'])
data1 = np.core.records.fromarrays([sex, causes], names='sex, causes')

# Second data structure
causes2 = np.array(['c1', 'c2', 'c3'])
analyst = np.array(['p1', 'p2', 'p3'])
data2 = np.core.records.fromarrays([causes2, analyst], names='causes, analyst')

# Join on Cause
all_data = matplotlib.mlab.rec_join(('causes'), data1, data2, jointype='leftouter')


我希望all_data数组包含的是data1中的所有数据,并在data2中指示了相应的分析器。

最佳答案

可能很好地使用了记录数组,但我认为python dict在这里应该一样好...我想知道自己做此事的numpy方法,如果它很好。

dct = dict(zip(data2['causes'], data2['analyst']))
all_data = mlab.rec_append_fields(data1, 'analyst',
    [dct[x] for x in data1['causes']])

关于python - 通过Python中的属性加入Recarrays,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7974824/

10-10 17:30