<p>既然您提到了<code>astype</code>,那么<code>ram</code>似乎是一个NumPy数组。你知道吗</p>
<p>要从每个值的正确大小中删除所有<code>0</code>,请使用<a href="http://docs.scipy.org/doc/numpy/reference/routines.char.html" rel="nofollow noreferrer">^{<cd4>}</a>:</p>
<pre><code>np.char.rstrip(ram, '0')
</code></pre>
<p>为了只保留每个值的前5个字节</p>
<pre><code>ram.astype('|S5')
</code></pre>
<p>够了。你知道吗</p>
<hr/>
<p>例如</p>
<pre><code>import numpy as np
ram = np.array(['039410', '123456', '00000']).astype('|S6')
print(np.char.rstrip(ram, b'0'))
# ['03941' '123456' '']
print(ram.view('|S5'))
# ['03941' '12345' '00000']
</code></pre>
<hr/>
<p>作为<a href="https://stackoverflow.com/questions/37148487/string-formatting-trim-from-right-instead-of-left/37148849?noredirect=1#comment61836083_37148487">Padraic Cunningham points out</a>,如果您有一个字符串数组:</p>
<pre><code>In [209]: ram = np.array(['039410', '123456', '00000']).astype('|S6'); ram
Out[209]:
array([b'039410', b'123456', b'00000'],
dtype='|S6')
</code></pre>
<p>如果将字符串转换为整数,左边的零将丢失:</p>
<pre><code>In [210]: ram.astype(int)
Out[210]: array([ 39410, 123456, 0])
</code></pre>
<p>因此,如果希望保留字符串的前5个字节,请不要使用<code>astype(int)</code>。你知道吗</p>