我正在尝试初始化一个大小为(x,y)的NumPy矩阵,其中y非常大。
矩阵的第一列是ID(整数),其余部分是三元组(int8),其中三元组的每个成员都应具有不同的默认值。
即假设默认值为
我能提供的最快初始化矩阵的方式是:
矩阵的第一列是ID(整数),其余部分是三元组(int8),其中三元组的每个成员都应具有不同的默认值。
即假设默认值为
[2,5,9]
,则我想初始化以下矩阵:0 2 5 9 2 5 9 2 5 9 ...
0 2 5 9 2 5 9 2 5 9 ...
0 2 5 9 2 5 9 2 5 9 ...
0 2 5 9 2 5 9 2 5 9 ...
...
我能提供的最快初始化矩阵的方式是:
defaults = [2, 5, 9]
mat = numpy.zeros(shape=(x,y),
dtype=['i'] + ['int8'] * (y - 1))
# fill the triplets with default values
for i in range(1, y/3):
j = i * 3
mat[:, j] = defaults[0]
mat[:, j+1] = defaults[1]
mat[:, j+2] = defaults[2]
如何快速初始化这样的矩阵?
谢谢!