我正在尝试创建一个以CSV格式导出的表格。我必须附加不同的数值(带小数),我还想附加一个指标列。这是由空格“_”和“X”组成的,以帮助我处理数据的后期处理。 正如您在下面的代码中看到的那样,虽然我只附加数字值,但是如果我追加字符串列,则小数值会消失。
我想我也会为指标列使用数值,但我想了解这种行为。是否可以附加字符串列和数值以避免消除小数?
>>> c = np.hstack((b,error_perc_notabs_array,error_array))
>>> c
array([[ 3.63200000e-01, 6.52800000e-01, 4.70400000e-01,
2.13117665e-02, 2.52124411e-02, 1.83029153e+01,
3.90067457e-03],
[ 4.16000000e-01, 7.82400000e-01, 4.48000000e-01,
2.25692703e-02, 4.35769819e-02, 9.30810405e+01,
2.10077116e-02]])
>>> z
[array([' '],
dtype='|S1'), array(['X'],
dtype='|S1')]
>>> shape(z)
(2L, 1L)
>>> d = np.hstack((z,c))
>>> d
array([[' ', '0', '0', '0', '0', '0', '1', '0'],
['X', '0', '0', '0', '0', '0', '9', '0']],
dtype='|S1')
答案 0 :(得分:0)
Numpy将所有元素转换为通用数据类型,在您的情况下为S1
,长度为1的字符串。
尽管如此,我的测试显示,常见数据类型os S1
和float
为S32
:
>>> z = array([['X'],[' ']], dtype='S1')
>>> d = numpy.hstack((z,c))
>>> d
array([[b'X', b'0.3632', b'0.6528', b'0.4704', b'0.0213117665',
b'0.0252124411', b'18.3029153', b'0.00390067457'],
[b' ', b'0.416', b'0.7824', b'0.448', b'0.0225692703',
b'0.0435769819', b'93.0810405', b'0.0210077116']],
dtype='|S32')