数组通过广播对字符串进行条带化

By simon at 2019-05-10 • 0人收藏 • 16人看过

我有以下代码

输入 numpy s numpy.array ([210123278414410005','101232784144610006'] ,dtype'object') print (s,type (s) ,s.shape) s [0] s [0][0][13: s [0][1] s [1][13: print (s,type (s) ,s.shape)

这就给出了我想要的输出:

['210123278414410005'''101232784144610006']['10005''10006']

你可能会看到左边的13个字符消失了。 有没有可能广播这次行动?

我试过了

[ s [0][ s [0][0][0][13: ]

但是这并不能像以前那样给出正确的输出。

['10005'10005']
2 个回复 | 最后更新于 2019-05-10
2019-05-10   #1

运用理解力

Import numpy s numpy.array ([210123278414410005','101232784144610006'] ,dtype'object') s np.asarray ([ i [13: for e in s for i in e ]) print (s,type (s) ,s.shape)

结果:

['10005'10006'] class'numpy.ndarray'(1,2)
2019-05-10   #2

你可以将数组项转换成数字,修剪它们,然后再转换回字符串:

Width 5 MOD 10 * * WIDTH numpy.char.zfill ((s.astype (numpy.int64)% MOD). Astype ('str') ,WIDTH) # array ([['10005','10006'] ,d type'U5')

登录后方可回帖

Loading...