Numpy将简单字符串与Numpy数组的值连接起来

2024-04-27 13:05:45 发布

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

我想用numpy数组的值连接一个简单的字符串。你知道吗

我创建了一个新的numpy数组np.排列获取数字[0,1,2]的增量列表。 但是我不能用字符串“User”连接每个数字。你知道吗

我尝试用numpy函数concatenate和defchararray连接,但没有成功。似乎concatenate函数只连接两个numpy数组,而不连接字符串和数组。你知道吗

代码如下:

Anon_id = np.arange(10)

print np.core.defchararray.add('User',Anon_id)
print np.concatenate('User',Anon_id)

你能帮我想出一个解决办法吗?你知道吗

致以最诚挚的问候。你知道吗


Tags: 函数字符串代码numpyid列表np数字
3条回答

一点%timeit比较以供参考:

%timeit [f'User{i}' for i in range(10)]
2.39 µs ± 106 ns per loop (mean ± std. dev. of 7 runs, 100000 loops each)

%timeit np.core.defchararray.add('User', np.arange(10).astype(str))
23.9 µs ± 1.85 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

对于更大的阵列

%timeit [f'User{i}' for i in range(1000)]
214 µs ± 8.73 µs per loop (mean ± std. dev. of 7 runs, 10000 loops each)

%timeit np.core.defchararray.add('User', np.arange(1000).astype(str))
1.18 ms ± 15.1 µs per loop (mean ± std. dev. of 7 runs, 1000 loops each)

现在无法检查Python2,但是本地Python3(3.7.5,64位)在这里很难被打败!对于较大的数组大小,本机Python的性能优势大致收敛到x6。你知道吗

这样怎么样:

np.array(['User{}'.format(i) for i in range(10)])

必须将整数数组转换为字符串:

import numpy as np
out = np.core.defchararray.add('User', np.arange(10).astype(str))
print(out)
# ['User0' 'User1' 'User2' 'User3' 'User4' 'User5' 'User6' 'User7' 'User8'
#  'User9']

相关问题 更多 >