【问题标题】:Getting certain elements from arrays从数组中获取某些元素
【发布时间】:2020-04-27 19:39:29
【问题描述】:

我有一个名为计算的变量,其数据如下所示。忽略仅包含一个值的第一个数组,第二个和第三个数组内部有 3 个元素。

我正在尝试访问并使用此计算变量中的某些值绘制与第二个数组(3 个中的)相对应的图,但仅是该第二个数组中的第一个元素。我将如何编写一个变量来从我的计算变量中获取这些元素?

例如,我尝试了 print(calculation[1]),它给出了整个第二个数组。我也试过 print(calculation[1][0]) 尝试从第二个数组中获取第 0 个元素,但这只会产生整个第二个数组中的第一个数组。

进行打印(计算)产量:

(array(86391360), array([[[-4.48794000e+05,  0.00000000e+00,  0.00000000e+00],
        [ 1.49597420e+11,  0.00000000e+00,  0.00000000e+00]],

       [[-4.48793336e+05, -7.72416000e+06,  0.00000000e+00],
        [ 1.49597199e+11,  2.57472000e+08,  0.00000000e+00]],

       [[-4.48791343e+05, -1.54483200e+07,  0.00000000e+00],
        [ 1.49596535e+11,  5.14943216e+08,  0.00000000e+00]],

       ...,

       [[ 5.07357741e+05, -7.72182336e+10,  0.00000000e+00],
        [-1.68852984e+11, -6.29442198e+10,  0.00000000e+00]],

       [[ 5.07420359e+05, -7.72259563e+10,  0.00000000e+00],
        [-1.68873839e+11, -6.31851333e+10,  0.00000000e+00]],

       [[ 5.07481946e+05, -7.72336789e+10,  0.00000000e+00],
        [-1.68894351e+11, -6.34260754e+10,  0.00000000e+00]]]), array([[[ 0.00000000e+00, -8.94000000e+02,  0.00000000e+00],
        [ 0.00000000e+00,  2.98000000e+04,  0.00000000e+00]],

       [[ 1.53782948e-04, -8.94000000e+02,  0.00000000e+00],
        [-5.12180648e+01,  2.97999546e+04,  0.00000000e+00]],

       [[ 3.07565355e-04, -8.93999999e+02,  0.00000000e+00],
        [-1.02435950e+02,  2.97998184e+04,  0.00000000e+00]],

       ...,

       [[ 7.30723767e-03, -8.93826810e+02,  0.00000000e+00],
        [-2.43370658e+03, -2.78818274e+04,  0.00000000e+00]],

       [[ 7.18780521e-03, -8.93826800e+02,  0.00000000e+00],
        [-2.39392910e+03, -2.78851623e+04,  0.00000000e+00]],

       [[ 7.06836086e-03, -8.93826790e+02,  0.00000000e+00],
        [-2.35414765e+03, -2.78884422e+04,  0.00000000e+00]]]))

感谢大家的支持!

【问题讨论】:

  • 你为什么在[1][0]之后停止了?你只需要再索引一次。

标签: arrays numpy element


【解决方案1】:

调用你的第二个数组A:

A = calculation[1]

A 具有三个维度(我们可以从方括号[ 的三层中看到)。我们将维度称为“列”、“行”和“页”。

提取第一页A的第一个三元素行:

row0 = A[0,0,:]    # page 0, row 0, all columns

提取第一页A的第一个二元素列:

col0 = A[0,:,0]    # page 0, all rows, column 0

从所有页面中提取角元素[0,0]:

corner0 = A[:,0,0]    # all pages, row 0, column 0

【讨论】:

    【解决方案2】:

    使用 AbbeGijly 的响应,我能够使用这个 for 循环得到我需要的东西,以防万一其他人偶然发现它并发现它有用。

    for i in range(len(A)):
        col = A[i,:,0]
        print(col)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-22
      • 1970-01-01
      • 2021-03-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多