在Numpy中减少字符数组的大小

0 投票
2 回答
539 浏览
提问于 2025-04-15 20:45

给定一个字符数组:

In [21]: x = np.array(['a     ','bb   ','cccc    '])

可以使用以下方法来去掉空格:

In [22]: np.char.strip(x)
Out[22]: 
array(['a', 'bb', 'cccc'], 
      dtype='|S8')

但是有没有办法把列的宽度缩小到最小所需的大小,比如上面的例子中是 |S4 呢?

2 个回答

0

在编程中,有时候我们会遇到一些问题,尤其是在使用某些工具或库的时候。这些问题可能会让我们感到困惑,不知道该怎么解决。比如,有人可能在使用某个特定的功能时,发现它并没有按照预期的方式工作。这时候,我们就需要去查找资料,看看是否有其他人遇到过类似的问题,以及他们是如何解决的。

在这个过程中,StackOverflow是一个非常有用的平台。这里聚集了很多程序员,他们会分享自己的经验和解决方案。当你在这里提问时,其他人可能会给你提供一些建议,或者分享他们的代码示例,帮助你更好地理解问题所在。

总之,遇到问题时,不要害怕去寻求帮助,利用好社区资源,能让你更快地找到解决方案。

>>> x = np.array(['a     ','bb   ','cccc    '])
>>> x = np.array([s.strip() for s in x])
>>> x
array(['a', 'bb', 'cccc'], 
      dtype='|S4')
1

你只是想改变数据类型吗?

import numpy as NP
a = NP.array(["a", "bb", "ccc"])
a 
# returns array(['a', 'bb', 'ccc'], dtype='|S3')
a = NP.array(a, dtype="|S8")   # change dtype
# returns array(['a', 'bb', 'ccc'], dtype='|S8')

a = NP.array(a, dtype="|S3")   # change it back
# returns array(['a', 'bb', 'ccc'], dtype='|S3')    

撰写回答