2024-06-06 14:29:58 发布
网友
我有一个2D numpy char数组(来自NetCDF4文件),它实际上表示一个字符串列表。我想把它转换成一个字符串列表。
我知道我可以使用join()将字符连接成字符串,但我一次只能找到一个字符串:
data = np.array([['a','b'],['c','d']]) for row in data[:]: print ''.join(row)
但是很慢。如何在单个命令中返回字符串数组?谢谢
[row.tostring() for row in data]
尝试列表理解:
>> s = [''.join(row) for row in data] >> s ['ab', 'cd']
这只是重写的for循环。
for
列表理解是最“Python”的方式。
最“刺激”的方式是:
>>> data = np.array([['a','b'],['c','d']]) # a 2D view >>> data.view('S2') array([['ab'], ['cd']], dtype='|S2') # or maybe a 1D view ...fastest solution: >>> data.view('S2').ravel() array(['ab', 'cd'], dtype='|S2')
没有循环,没有列表理解,甚至没有副本。缓冲区只是保持不变,有一个不同的“视图”,所以这是最快的解决方案。
尝试列表理解:
这只是重写的
for
循环。列表理解是最“Python”的方式。
最“刺激”的方式是:
没有循环,没有列表理解,甚至没有副本。缓冲区只是保持不变,有一个不同的“视图”,所以这是最快的解决方案。
相关问题 更多 >
编程相关推荐