将另一列(索引)添加到数组中

时间:2014-04-15 16:25:30

标签: numpy scipy

我有一个数组

a =array([ 0.74552751,  0.70868784,  0.7351144 ,  0.71597612,  0.77608263,
         0.71213591,  0.77297658,  0.75637376,  0.76636106,  0.76098067,
        0.79142821,  0.71932262,  0.68984604,  0.77008623,  0.76334351,
        0.76129872,  0.76717526,  0.78413129,  0.76483804,  0.75160062,
        0.7532506 ], dtype=float32)

我想以项目,值格式存储我的数组,似乎无法正确使用它。 我正试图获得这种格式:

  a = [(0, 0.001497),
  (1, 0.0061543),
   ..............
  (46, 0.001436781),
  (47, 0.00654533),
  (48, 0.0027139),
  (49, 0.00462962)],

1 个答案:

答案 0 :(得分:1)

Numpy数组具有您必须指定的固定数据类型。它看起来像是一种数据类型 int为您的项目和浮动为您的价值将最有效。类似的东西:

import numpy as np
dtype = [("item", int), ("value", float)]
a = np.array([(0, 0.), (1, .1), (2, .2)], dtype=dtype)

dtype的字符串部分是每个字段的名称。名称允许您更轻松地访问字段:

print a['value']
# [ 0.,  0.1,  0.2]

a['value'] = [7, 8, 9]
print a
# [(0, 7.0) (1, 8.0) (2, 9.0)]

如果您需要将另一个数组复制到我上面描述的数组中,您只需使用字段名称即可:

new = np.empty(len(a), dtype)
new['index'] = [3, 4, 5]
new['value'] = a['value']
print new
# [(3, 7.0) (4, 8.0) (5, 9.0)]