我想创建一个数组,但是当我使用np.append
时,如果它们的元素:
import numpy as np
im_data = np.array(['image0','image1','image2','image3','image4','image5','image6','image7','image8','image9','image10','image11','image12','image13','image14'])
batches = [[1,2,3,4],[7,8,9,10],[3,4,5,6]]
image_batches = []
for batch in batches:
image_batches = np.append(image_batches,[im_data[batch]])
这就是我得到的:
In: image_batches
Out:
array(['image1', 'image2', 'image3', 'image4', 'image7', 'image8', 'image9', 'image10', 'image3', 'image4', 'image5', 'image6'], dtype='<U32')
这就是我需要的:
array([['image1', 'image2', 'image3', 'image4'], ['image7', 'image8', 'image9', 'image10'], ['image3', 'image4', 'image5', 'image6']], dtype='<U7')
我通过使用
image_batches = im_data[batches[0]]
for batch in batches[1:]:
image_batches = np.vstack([image_batches, im_data[batch]])
但也许有更优雅的方式来做呢
正如@hpaulj在评论中提到的,您可以直接使用advances索引:
输出:
您可以使用
list comprehension
,然后将其转换为numpy.array
:输出:
干杯
相关问题 更多 >
编程相关推荐