【发布时间】:2020-06-29 10:45:09
【问题描述】:
我有这个简单的代码:
import numpy as np
from numpy import random
import csv
import os
import pandas as pd
data=np.loadtxt('lums.dat')
data2=np.loadtxt('all.dat')
shuffle=np.random.shuffle(data[0::1])
with open('data', 'w') as f:
writer = csv.writer(f, delimiter=" ")
writer.writerows(zip(data2[:,0], data2[:,1], data[:,0], data[:,1], data2[:,4], data2[:,5]))
输出如下所示:
42.9356886 1.0 30.91534 1.0 0.899 1.0
43.6177968 1.0 30.76019 1.0 1.5 1.0
42.6341244 1.0 29.26717 0.0 0.61 1.0
但是,我需要第二、第四和第六列是整数,并且我还希望能够指定第一、第三和第五列的位数。有没有一种简单的方法可以做到这一点?
编辑:文件 lums.dat 包含:
31.2114100 1
33.0060900 1
31.1879700 1
31.1502300 1
30.0178600 1
29.8382100 1
all.dat 文件包含:
42.9356886 1 31.2114100 1 0.89900000 1
43.6177968 1 33.0060900 1 1.50000000 1
42.6341244 1 31.1879700 1 0.61000000 1
42.5828698 1 31.1502300 1 0.69700000 1
42.2789821 1 30.0178600 1 0.26000000 1
41.9161537 1 29.8382100 1 0.21400000 1
【问题讨论】:
-
np.savetxt允许您指定列格式。 -
loadtxt在空间上拆分输入行,并将所有值转换为浮点数。你熟悉python%的格式化方法吗? -
其实不是,我还是Python的初学者。不过,这个问题已经解决了。非常感谢。
标签: python numpy csv format output