Numpy 如何根据一维矩阵中的给定值自动生成矩阵
我曾尝试使用for循环生成列表数组中的每一列,这很有效。但不幸的是,我不能在np.append(matrix_name,values(=list),axis=0)com中使用此列表,并将这些值作为列添加到定义的矩阵X中,其大小为10x10 大致应该是这样的:这样就可以了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
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
。不过,这与这个问题无关,当你处理这么大的整数时,你应该小心你的平台限制。