说我有以下数组:
import numpy as np a = ['hello','snake','plate']
我希望这变成一个numpy数组,b以便:
b
b[0,0] = 'h' b[0,1] = 'e' b[0,2] = 'l' b[1,0] = 's' ...
我希望标准的numpy技巧能够正常工作,例如广播,比较等。
怎么做?那在numpy文档中呢?
谢谢!
乌里
您可以直接创建一个numpy字符数组,例如:
b = np.array([ ['h','e','l','l','o'],['s','n','a','k','e'],['p','l','a','t','e'] ])
通常的数组技巧可以解决这个问题。
如果您有a并且希望从中 生成 b,请注意:
a
list('hello') == ['h','e','l','l','o']
因此,您可以执行以下操作:
b = np.array([ list(word) for word in a ])
但是,如果a单词长度不等(例如['snakes','on','a','plane']),您想对较短的单词做什么?您可以用最长的单词用空格填充:
['snakes','on','a','plane']
wid = max(len(w) for w in a) b = np.array([ list(w.center(wid)) for w in a])
其中string.center(width)垫有空格,居中放置字符串。您还可以使用rjust或ljust(请参阅字符串docs)。
string.center(width)
rjust
ljust