我正在尝试创建一个大尺寸的numpy字符数组(5个以上的尺寸),其中每个bin代表数字的组合。我将定义这些数字(可能使用/),以便稍后在需要时可以对信息进行字符串拆分。因此,特别是在节省时间的情况下,它变得像20维度数组。我希望使用矩阵而不是进行20个循环。请在下面找到一个带有循环的二维示例,我将如何在不使用循环的情况下实现这一点的任何想法都会有所帮助。
import numpy as np
storing_array = np.chararray( [80, 98], itemsize = 100 )
for x1 in range(0, 80):
for x2 in range(0, 98):
storing_array[x1, x2] = '/'.join([str(x1), str(x2)])
谢谢!
答案 0 :(得分:2)
您可以方便地用x1
定义x2
和np.arange
,将它们转换为str
,然后将它们转换为object
,因此它们对某些操作:
x2=np.arange(98).astype(str).astype(object)
x1=np.arange(80).astype(str).astype(object)
现在将/
添加到x1
的位置:
x1+='/'
现在使用np.broadcasting获得所有组合:
result=x1[:,None]+x2