Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 长度为n的一维数组转换为二维数组sqrt(n)*sqrt(n)?_Python_Arrays_Matrix - Fatal编程技术网

Python 长度为n的一维数组转换为二维数组sqrt(n)*sqrt(n)?

Python 长度为n的一维数组转换为二维数组sqrt(n)*sqrt(n)?,python,arrays,matrix,Python,Arrays,Matrix,有没有简单的方法可以通过sqrt(n)矩阵将长度为n的1d数组重新排列成sqrt(n)(假设数组总是完美的正方形长度) 我试图使用for循环来实现它,但结果是有害的。:D array = [1,2,3,4,5,6,7,8,9], matrix=[[1,2,3],[4,5,6],[7,8,9]] 当然,和努比一起 array = np.array([1,2,3,4,5,6,7,8,9]) box = int(np.sqrt(array.shape[0])) matrix = array.resh

有没有简单的方法可以通过
sqrt(n)
矩阵将长度为
n
的1d数组重新排列成
sqrt(n)
(假设数组总是完美的正方形长度)

我试图使用
for
循环来实现它,但结果是有害的。
:D

array = [1,2,3,4,5,6,7,8,9], matrix=[[1,2,3],[4,5,6],[7,8,9]]
当然,和努比一起

array = np.array([1,2,3,4,5,6,7,8,9])
box = int(np.sqrt(array.shape[0]))
matrix = array.reshape((box,box))
>>>
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>>
当然,和努比一起

array = np.array([1,2,3,4,5,6,7,8,9])
box = int(np.sqrt(array.shape[0]))
matrix = array.reshape((box,box))
>>>
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
>>>

您也可以通过本机执行此操作:

import math

arr = [1,2,3,4,5,6,7,8,9]
sq = int(math.sqrt(len(arr)))
matrix = [arr[i * sq:i * sq + sq] for i in range(sq)]

print(matrix)
结果:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

您也可以通过本机执行此操作:

import math

arr = [1,2,3,4,5,6,7,8,9]
sq = int(math.sqrt(len(arr)))
matrix = [arr[i * sq:i * sq + sq] for i in range(sq)]

print(matrix)
结果:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

不需要第三方库就可以做到这一点

首先我们求平方根,然后去掉小数

然后我们一次选择三个数字,使用以下符号
数组[0:3]
(返回
[1,2,3]

最后,所有这些都存储在数组或矩阵中

import math  
array = [1,2,3,4,5,6,7,8,9]

num=int(math.sqrt(len(array)))
array_out=[array[i*num:i*num+num] for i in range(num)]
结果:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]

不需要第三方库就可以做到这一点

首先我们求平方根,然后去掉小数

然后我们一次选择三个数字,使用以下符号
数组[0:3]
(返回
[1,2,3]

最后,所有这些都存储在数组或矩阵中

import math  
array = [1,2,3,4,5,6,7,8,9]

num=int(math.sqrt(len(array)))
array_out=[array[i*num:i*num+num] for i in range(num)]
结果:

[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]