numpy中的按元素的字符串连接

2024-05-12 16:46:55 发布

您现在位置:Python中文网/ 问答频道 /正文

这是虫子吗?

import numpy as np
a1=np.array(['a','b'])
a2=np.array(['E','F'])

In [20]: add(a1,a2)
Out[20]: NotImplemented

我正在尝试按元素进行字符串连接。我以为Add()是在numpy中实现的方法,但显然它并没有像预期的那样工作。


Tags: 字符串inimportnumpyadda2元素a1
3条回答

这可以使用numpy.core.defchararray.add完成。下面是一个例子:

>>> import numpy as np
>>> a1 = np.array(['a', 'b'])
>>> a2 = np.array(['E', 'F'])
>>> np.core.defchararray.add(a1, a2)
array(['aE', 'bF'], 
      dtype='<U2')

还有其他有用的string operations可用于NumPy数据类型。

这可以(也应该)在纯Python中完成,因为numpy还在内部使用Python字符串操作函数:

>>> a1 = ['a','b']
>>> a2 = ['E','F']
>>> map(''.join, zip(a1, a2))
['aE', 'bF']

You can use the ^{} subclass使用字符串执行数组操作:

a1 = np.char.array(['a', 'b'])
a2 = np.char.array(['E', 'F'])

a1 + a2
#chararray(['aE', 'bF'], dtype='|S2')

另一个很好的例子:

b = np.array([2, 4])
a1*b
#chararray(['aa', 'bbbb'], dtype='|S4')

相关问题 更多 >