【发布时间】:2019-02-01 00:05:11
【问题描述】:
假设我有一个数组(不一定是正方形)
my_array = ['name_1', 3
'name_2', 2]
我想以length 3+2=5 的列表(或numpy 数组等)结束,其中前三个位置分配给'name_1',接下来的两个位置分配给'name_2'。因此输出将是
['name_1', 'name_1', 'name_1', 'name_2', 'name_2']
这是我到目前为止所做的;请问有更好的方法吗?
import numpy as np
my_array = np.array([['name_1', 3], ['name_2', 2]])
l = []
for i in range(my_array.shape[0]):
x = [my_array[i, 0].tolist()] * np.int(my_array[i, 1])
l.append(x)
flat_list = [item for sublist in l for item in sublist]
print(flat_list)
哪个打印:
['name_1', 'name_1', 'name_1', 'name_2', 'name_2']
谢谢!
【问题讨论】:
标签: python arrays python-3.x numpy