我有一个列表l
,其中包含正方形的元素,例如16、25、400。
现在,要创建一个大小为零但为正方形的,由零组成的numpy数组a
,例如4x4、5x5、20x20。
我找到了解决方法:
a = np.zeros(2 * (int(np.sqrt(len(l))),))
或
a = np.zeros(len(l)).reshape(int(np.sqrt(len(l))), int(np.sqrt(len(l))))
它正在工作,但是非常丑陋,我相信必须有更好的方法来做到这一点。
类似于a = np.zeros(l, 2)
。
有什么想法吗?
谢谢! :)
答案 0 :(得分:1)
您可以尝试:
shp = int(np.sqrt(len(l))
a = np.zeros((shp, shp))
答案 1 :(得分:1)
您可以像这样清理它:
size = len(l)
sqrt = int(np.sqrt(size))
a = np.zeros((sqrt, sqrt))
每次您多次编写同一段代码时,最好将其替换为变量,函数等。