如何创建具有随机生成维度的随机生成矩阵,然后转置它?

How do I create a randomly generated matrix with randomly generated dimension and then transpose it?

这是我目前拥有的:

import random
import numpy as np
r1 = random.randint(0, 100)
r2 = random.randint(0, 100)
r3 = random.randint(0, 100)
if r2 < r1:
    print("invalid")
elif r2 < r3:
    print("invalid")
a = np.arange(r2).reshape((r1, r3))
print(a)
print(a.transpose())

基本上,我创建了 3 个随机数在 1 到 100 范围内的变量,我想我误用了 if/else 语句并且还弄乱了 np.arange().reshape()程序的一部分。 任何帮助将不胜感激。

您试图将形状为 r2 的数组重塑为形状为 r1, r3 的数组,这在大多数情况下是不可能的。这就像尝试将 r2 个元素排列成 r1 x r3 个网格。你的问题是过度约束。为此 r2 需要等于 r1*r3.

我不确定你的最终目标是什么,但你可以随机获得 r1r3,然后将 r2 设置为 r1*r3。这实际上会将 r1*r3 排列重塑为 (r1, r3).

的形状
r1 = random.randint(0, 100)
r3 = random.randint(0, 100)
a = np.arange(r1*r3).reshape(r1, r3)

print(a)
print(a.transpose())