first_name = [["Tom", "Alex", "Sam"], ["Anna", "Bob", "Mike"]]
last_name = [["Smith", "Brown", "Lee"], ["Davis", "Allen", "Lewis"]]
我想创建一个****垂直numpy数组,输出如下:
[["Tom Smith" "Anna Davis"]
["Alex Brown" "Bob Allen"]
["Sam Lee" "Mike Lewis"]]
我该怎么做?
2条答案
按热度按时间eqzww0vc1#
尝试:
图纸:
ffscu2ro2#
使用double list comprehension,我们可以连接所有对:
但是你想要嵌套列表:
顺序是错误的,所以我们可以应用一个等价于转置的列表:
我还没有找到一种方法将“转置”移动到双循环中。
numpy
有一些np.char
函数,它们将字符串方法应用于数组的元素。在这里我使用
np.char.add
来添加两个数组(或列表变成数组)的元素。我必须首先向一个数组添加一个空格,然后添加另一个。和以前一样,我们需要转置。这实际上看起来更简单,但我不确定它是否更快。
或者通过创建对象dtype数组,我们可以使用'+'运算符:
列表理解的时间最快,但是对于这样的小例子,时间必须谨慎对待。不同的方法可能会有不同的规模。