Numpy 如何根据一维矩阵中的给定值自动生成矩阵

Numpy 如何根据一维矩阵中的给定值自动生成矩阵,numpy,matrix,Numpy,Matrix,我曾尝试使用for循环生成列表数组中的每一列,这很有效。但不幸的是,我不能在np.append(matrix_name,values(=list),axis=0)com中使用此列表,并将这些值作为列添加到定义的矩阵X中,其大小为10x10 大致应该是这样的:这样就可以了 np.tile(np.arange(1, 11), (10, 1)).cumprod(axis=0) 让我们详细看看我们在做什么 生成第一行 np.arange(1, 11) array([ 1, 2, 3, 4, 5

我曾尝试使用for循环生成列表数组中的每一列,这很有效。但不幸的是,我不能在np.append(matrix_name,values(=list),axis=0)com中使用此列表,并将这些值作为列添加到定义的矩阵X中,其大小为10x10

大致应该是这样的:

这样就可以了

np.tile(np.arange(1, 11), (10, 1)).cumprod(axis=0)
让我们详细看看我们在做什么

生成第一行

np.arange(1, 11)
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10])
重复十次

np.tile(np.arange(1, 11), (10, 1))
array([[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
       [ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10]])
沿轴0将每行乘以上一行

np.tile(np.arange(1, 11), (10, 1)).cumprod(axis=0)
array([[          1,           2,           3,           4,           5,
                  6,           7,           8,           9,          10],
       [          1,           4,           9,          16,          25,
                 36,          49,          64,          81,         100],
       [          1,           8,          27,          64,         125,
                216,         343,         512,         729,        1000],
       [          1,          16,          81,         256,         625,
               1296,        2401,        4096,        6561,       10000],
       [          1,          32,         243,        1024,        3125,
               7776,       16807,       32768,       59049,      100000],
       [          1,          64,         729,        4096,       15625,
              46656,      117649,      262144,      531441,     1000000],
       [          1,         128,        2187,       16384,       78125,
             279936,      823543,     2097152,     4782969,    10000000],
       [          1,         256,        6561,       65536,      390625,
            1679616,     5764801,    16777216,    43046721,   100000000],
       [          1,         512,       19683,      262144,     1953125,
           10077696,    40353607,   134217728,   387420489,  1000000000],
       [          1,        1024,       59049,     1048576,     9765625,
           60466176,   282475249,  1073741824,  3486784401, 10000000000]])

这会导致我的数据库中出现整数溢出system@Brenllapython继承了默认的C类型大小,所以默认的int是C long,几乎在每个64位系统上都是64位int,除了您可能正在使用的Win64之外。您应该能够避免第一个
np.arange
中的溢出设置
dtype=np.uint64
。不过,这与这个问题无关,当你处理这么大的整数时,你应该小心你的平台限制。