为numpy数组添加索引

Vei*_*pse 5 python arrays numpy

我有一个numpy数组:

prob_rf = [[0.4, 0.4, 0.4], 
           [0.5, 0.5, 0.5], 
           [0.6, 0.6, 0.6]]
Run Code Online (Sandbox Code Playgroud)

我想为每个内部数组添加一个索引号:

prob_rf = [[1, 0.4, 0.4, 0.4],
           [2, 0.5, 0.5, 0.5],
           [3, 0.6, 0.6, 0.6]]
Run Code Online (Sandbox Code Playgroud)

然后csv使用将此数组保存到文件中numpy.savetxt.

我目前这样做:

    id = [i for i in xrange(1,len(prob)+1)]
    prob_rf = np.insert(prob_rf, 0, id, axis=1)
    np.savetxt("foo.csv", prob_rf, delimiter=",", fmt='%1.1f')
Run Code Online (Sandbox Code Playgroud)

但这是输出为

[[1.0, 0.4, 0.4, 0.4], 
 [2.0, 0.5, 0.5, 0.5], 
 [3.0, 0.6, 0.6, 0.6]]
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我如何获得输出

[[1, 0.4, 0.4, 0.4], 
 [2, 0.5, 0.5, 0.5], 
 [3, 0.6, 0.6, 0.6]]
Run Code Online (Sandbox Code Playgroud)

Car*_*ten 7

使用带fmt参数的列表指定每列的格式:

fmt=['%d', '%1.1f', '%1.1f', '%1.1f']
Run Code Online (Sandbox Code Playgroud)

完整的例子:

import numpy as np
prob_rf = [[1, 0.4, 0.4, 0.4],
           [2, 0.5, 0.5, 0.5],
           [3, 0.6, 0.6, 0.6]]
np.savetxt("foo.csv", prob_rf, delimiter=",", fmt=['%d', '%1.1f', '%1.1f', '%1.1f'])
Run Code Online (Sandbox Code Playgroud)

生成的文件:

1,0.4,0.4,0.4
2,0.5,0.5,0.5
3,0.6,0.6,0.6
Run Code Online (Sandbox Code Playgroud)