使用定界符连接字符矩阵 python
joining character matrices with delimiter python
我正在尝试创建一个大维 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)])
谢谢!
您可以方便地用 np.arange
定义您的 x1
和 x2
,将它们转换为 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
我正在尝试创建一个大维 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)])
谢谢!
您可以方便地用 np.arange
定义您的 x1
和 x2
,将它们转换为 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