numpy:变换列表到方形数组



我有一个列表 t,其中有一个平方的元素,例如。16、25、400。现在,想创建一个装满相同大小的零的numpy阵列a,但平方形,例如4x4,5x5,20x20。

我找到了一个解决方案:

a = np.zeros(2 * (int(np.sqrt(len(t))),))

a = np.zeros(len(t)).reshape(int(np.sqrt(len(t))), int(np.sqrt(len(t))))

它正在工作,但它非常丑陋,我敢肯定必须有一种更好的方法来做到这一点。类似于a = np.zeros(t, 2)。有什么想法吗?

谢谢!:)

您可以尝试:

shp = int(np.sqrt(len(l))
a = np.zeros((shp, shp))

您可以像这样清洁它:

size = len(l)
sqrt = int(np.sqrt(size))
a = np.zeros((sqrt, sqrt))

每当您多次编写相同的代码片段时,都可以用变量,功能等替换。

最新更新