我想使用嵌套循环创建2D数组。这段代码有什么问题?
<?php
require_once('dbConnect.php');
if($_SERVER['REQUEST_METHOD']=='GET') {
$sql = "SELECT * FROM farm ORDER BY SN" ;
$res = mysqli_query($con,$sql);
$result = array();
while($row = mysqli_fetch_array($res))
{
array_push($result, array('no'=>$row[0], 'username'=>$row[1],
'SN'=>$row[2]));
}
echo json_encode(array("value"=>1,"result"=>$result));
mysqli_close($con);
}
?>
答案 0 :(得分:3)
您正在定义的numpy数组与您正在使用的循环的形状不正确。 b = np.array([])
为您提供形状为(0,)
您可以使用类似np.zeros
之类的东西来定义2D数组。
import numpy as np
b = np.zeros((3,6))
for i in range(2):
for j in range(5):
b[i][j]=i+j
print(b)
输出将为
[[0. 1. 2. 3. 4. 0.]
[1. 2. 3. 4. 5. 0.]
[0. 0. 0. 0. 0. 0.]]
另一种选择是制作2D列表,将其填充为for循环,然后稍后转换为numpy数组
import numpy as np
#2D array
b = [ [0 for _ in range(6)] for _ in range(3)]
#Fill up array with for loops
for i in range(2):
for j in range(5):
b[i][j]=i+j
#Convert to numpy array
print(np.array(b))
输出将为
[[0 1 2 3 4 0]
[1 2 3 4 5 0]
[0 0 0 0 0 0]]
答案 1 :(得分:0)
执行此操作的正确方法是遵循以下四个步骤:
1初始化一个空数组以将结果存储在其中
2在循环内部的数据数组的行/列上创建for循环:
3进行计算
4追加结果数组
答案 2 :(得分:0)
我了解您问过如何使用嵌套循环来执行此操作,因此如果您觉得此功能不实用,那么深表歉意。我只是以为我会分享我通常的做法:
b = np.arange(10).reshape(2,5)
print(b)
[[0 1 2 3 4]
[5 6 7 8 9]]
答案 3 :(得分:0)
这只是一个带有for循环的3D随机初始化技巧。
import numpy as np
np.random.seed(0) # seed
x1 = np.random.randint(10, size=3) # One-dimensional array
x2 = np.random.randint(10, size=(3, 4)) # Two-dimensional array
x3 = np.random.randint(10, size=(3, 4, 5)) # Three-dimensional array
以后,您可能会使用魔术来循环魔术。
for _ in range(2):
for __ in range(4):
for ___ in range(5):
x3[_][__][___]=_+__+___