Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/325.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中逐元素读取数组中的数组_Python_Arrays_Python 3.x - Fatal编程技术网

如何在python中逐元素读取数组中的数组

如何在python中逐元素读取数组中的数组,python,arrays,python-3.x,Python,Arrays,Python 3.x,我想计算两个向量之间的MSE,原始向量和预测向量。 X_列是一个包含所有原始输入的向量,重建的32是所有预测,但我只想计算第一个元素(X_列[0]及其重建的预测32[0])的MSE,我想使用以下某种函数手动进行计算: mse=[] for coef, coef32 in zip(X_train[0], reconstructed32[0]): mse.append((coef-coef32)**2) print("MSE is", np.mean(mse)) 但是c

我想计算两个向量之间的MSE,原始向量和预测向量。 X_列是一个包含所有原始输入的向量,重建的32是所有预测,但我只想计算第一个元素(X_列[0]及其重建的预测32[0])的MSE,我想使用以下某种函数手动进行计算:

mse=[]
for coef, coef32 in zip(X_train[0], reconstructed32[0]):
    mse.append((coef-coef32)**2)
print("MSE is", np.mean(mse))
但是coef和coef32并没有访问向量的所有系数,而是获取完整向量,for只进行一次迭代。 这就是X_列[0]的外观:

array([[0.00000000e+00, 0.00000000e+00, 2.26577651e-02, 4.44901595e-03,
        0.00000000e+00, 0.00000000e+00, 0.00000000e+00, 0.00000000e+00,
        1.19896736e-02, 2.88007129e-03, 0.00000000e+00, 0.00000000e+00,
        1.89431056e-01, 0.00000000e+00, 3.64951454e-02, 0.00000000e+00,
        3.19024414e-01, 7.74396257e-03, 6.00360870e-01, 0.00000000e+00,
        6.25879224e-03, 6.58161461e-01, 8.55771124e-01, 0.00000000e+00,
        9.72116515e-02, 1.20666134e-03, 1.45429194e-01, 0.00000000e+00,
        8.25748563e-01, 6.86123502e-03, 5.37337780e-01, 0.00000000e+00,
        0.00000000e+00, 5.24137542e-03, 0.00000000e+00, 3.74730385e-04,
        0.00000000e+00, 1.18224040e-01, 8.56024176e-02, 0.00000000e+00,
        2.49160156e-02, 0.00000000e+00, 8.91805351e-01, 2.61418521e-03,
        0.00000000e+00, 1.73141190e-03, 0.00000000e+00, 4.95929737e-04,
        0.00000000e+00, 1.00000000e+00, 4.93207388e-02, 5.37037617e-03,
        3.81159922e-03, 2.94345170e-01, 4.77780886e-02, 0.00000000e+00,
        5.86739518e-02, 1.02838585e-02, 1.41941339e-01, 3.23100435e-03,
        0.00000000e+00, 1.34332031e-01, 2.35870923e-03, 0.00000000e+00,
        5.09367557e-03, 0.00000000e+00, 1.07753032e-03, 0.00000000e+00,
        0.00000000e+00, 0.00000000e+00, 3.47328931e-01, 0.00000000e+00,
        0.00000000e+00, 2.65773922e-01, 1.57823116e-02, 5.41949784e-03,
        7.56190493e-05, 1.40293926e-01, 5.02460590e-03, 6.51085284e-03,
        9.38402303e-03, 2.63461888e-01, 1.96186375e-04, 1.39610067e-01,
        0.00000000e+00, 2.39743218e-02, 3.54982950e-02, 6.54916763e-02,
        5.11557400e-01, 3.56561318e-03, 5.72423302e-02, 0.00000000e+00,
        1.21502653e-01, 2.71597654e-02, 2.47318600e-03, 6.85532205e-03,
        5.31266391e-01, 0.00000000e+00, 0.00000000e+00, 2.94529963e-02,
        0.00000000e+00, 3.75285745e-01, 3.31357837e-01, 1.18085509e-03,
        1.19613800e-02, 6.72158494e-05, 0.00000000e+00, 0.00000000e+00,
        0.00000000e+00, 7.86180317e-01, 0.00000000e+00, 0.00000000e+00,
        4.27392730e-03, 2.27557942e-02, 1.35929761e-02, 1.27607910e-02,
        0.00000000e+00, 2.63269083e-03, 1.48336608e-02, 0.00000000e+00,
        1.77292936e-02, 1.18409727e-04, 0.00000000e+00, 5.49420249e-03,
        0.00000000e+00, 1.70363311e-03, 1.75287843e-01, 4.07821295e-04]],
      dtype=float32)
例如,如果我尝试以下简单代码:

for coef in X_train[0]:
    print("coef is", coef)
我得到这个输出:

coef is [0.00000000e+00 0.00000000e+00 2.26577651e-02 4.44901595e-03
 0.00000000e+00 0.00000000e+00 0.00000000e+00 0.00000000e+00
 1.19896736e-02 2.88007129e-03 0.00000000e+00 0.00000000e+00
 1.89431056e-01 0.00000000e+00 3.64951454e-02 0.00000000e+00
 3.19024414e-01 7.74396257e-03 6.00360870e-01 0.00000000e+00
 6.25879224e-03 6.58161461e-01 8.55771124e-01 0.00000000e+00
 9.72116515e-02 1.20666134e-03 1.45429194e-01 0.00000000e+00
 8.25748563e-01 6.86123502e-03 5.37337780e-01 0.00000000e+00
 0.00000000e+00 5.24137542e-03 0.00000000e+00 3.74730385e-04
 0.00000000e+00 1.18224040e-01 8.56024176e-02 0.00000000e+00
 2.49160156e-02 0.00000000e+00 8.91805351e-01 2.61418521e-03
 0.00000000e+00 1.73141190e-03 0.00000000e+00 4.95929737e-04
 0.00000000e+00 1.00000000e+00 4.93207388e-02 5.37037617e-03
 3.81159922e-03 2.94345170e-01 4.77780886e-02 0.00000000e+00
 5.86739518e-02 1.02838585e-02 1.41941339e-01 3.23100435e-03
 0.00000000e+00 1.34332031e-01 2.35870923e-03 0.00000000e+00
 5.09367557e-03 0.00000000e+00 1.07753032e-03 0.00000000e+00
 0.00000000e+00 0.00000000e+00 3.47328931e-01 0.00000000e+00
 0.00000000e+00 2.65773922e-01 1.57823116e-02 5.41949784e-03
 7.56190493e-05 1.40293926e-01 5.02460590e-03 6.51085284e-03
 9.38402303e-03 2.63461888e-01 1.96186375e-04 1.39610067e-01
 0.00000000e+00 2.39743218e-02 3.54982950e-02 6.54916763e-02
 5.11557400e-01 3.56561318e-03 5.72423302e-02 0.00000000e+00
 1.21502653e-01 2.71597654e-02 2.47318600e-03 6.85532205e-03
 5.31266391e-01 0.00000000e+00 0.00000000e+00 2.94529963e-02
 0.00000000e+00 3.75285745e-01 3.31357837e-01 1.18085509e-03
 1.19613800e-02 6.72158494e-05 0.00000000e+00 0.00000000e+00
 0.00000000e+00 7.86180317e-01 0.00000000e+00 0.00000000e+00
 4.27392730e-03 2.27557942e-02 1.35929761e-02 1.27607910e-02
 0.00000000e+00 2.63269083e-03 1.48336608e-02 0.00000000e+00
 1.77292936e-02 1.18409727e-04 0.00000000e+00 5.49420249e-03
 0.00000000e+00 1.70363311e-03 1.75287843e-01 4.07821295e-04]

我想在每个系数前面得到“coef is”,而不是在整个向量前面。我怎样才能解决这个问题

谢谢

试试这个

for coef in X_train[0][0]:
    print("coef is", coef)
试试这个

for coef in X_train[0][0]:
    print("coef is", coef)

当您遍历NumPy数组时,您正在遍历第一个索引(即行)。因为您有一个维度为
(1,d)
的矩阵,所以迭代将给出整个第一行

有几种方法可以解决这个问题,但最简单的方法就是使用行向量本身(维度
(d,)

#在您的情况下,您的_idx是0
对于coef,zip中的coef32(X_train[your_idx][0],重构32[your_idx][0]):
... # 做你的事

当您遍历NumPy数组时,您正在遍历第一个索引(即行)。因为您有一个维度为
(1,d)
的矩阵,所以迭代将给出整个第一行

有几种方法可以解决这个问题,但最简单的方法就是使用行向量本身(维度
(d,)

#在您的情况下,您的_idx是0
对于coef,zip中的coef32(X_train[your_idx][0],重构32[your_idx][0]):
... # 做你的事

但是他的数组看起来像一个2D数组,所以
X\u train[0]
应该可以工作吗
X_-train[0]
仅获取数组的第一个元素并打印
X_-train=np.random.rand(1,10);对于X_列[0]中的coef:print(“coef is”,coef)
适用于我,但他的数组看起来像一个2D数组,所以
X_列[0]
应该可以工作
X_-train[0]
仅获取数组的第一个元素并打印
X_-train=np.random.rand(1,10);对于X_列车[0]中的coef:print(“coef is”,coef)
适用于meCan您可以添加代码以生成
X_列车
?您可以添加代码以生成
X_列车