2 回答

TA贡献1934条经验 获得超2个赞
我想在第 9 位之后简单地拆分 radec 变量......
radec[0] 000000.45+174625.4' 变为 ra[0] = 00:00:00.45 和 dec[0] = +17:46:25.4
可以通过使用适当的数据类型构造变量内存的视图来完成拆分:
t = numpy.dtype([('ra', 'U9'), ('dec', 'U9')])
ra = radec.view(t)['ra']
dec = radec.view(t)['dec']
...然后添加冒号
这也可以(ab)使用 view 方法完成:
ra = [":".join(x) for x in ra .view(numpy.dtype("U2,U2,U5"))]
dec = [":".join(x) for x in dec.view(numpy.dtype("U3,U2,U4"))]

TA贡献1802条经验 获得超10个赞
在最近的 SO 中,我比较了对数组字符串进行操作的各种方式:
结果证明np.char
(或chararray
方法)并不比列表理解快。 np.frompyfunc
是最快的。
因此,根据经验,我认为您需要专注于修改一个字符串,并将任何numpy
加速留给以后。
如前所述,一个复杂的问题是,当您应用 split 时,您会得到一个列表数组;两个词代替了原来的一个。
在没有深入了解细节的情况下,我怀疑添加 ':' 将需要re
,或者某种迭代(字符串上的列表理解?)。
添加回答
举报