【问题标题】:How to access the first items in a list of arrays without for loop in Python 3?如何在 Python 3 中不使用 for 循环访问数组列表中的第一项?
【发布时间】:2018-04-09 09:35:52
【问题描述】:

我有一个 ode 方程,它产生如下列表:

u=[array([ 2.06642033, -0.03448756]), 
   array([ 2.03964994, -0.18737285]), 
   array([ 1.99884859, -0.21461016]), 
   array([ 1.95476809, -0.2254584 ]), 
   array([ 1.90875336, -0.23472173]), 
   array([ 1.86082857, -0.24471069]),
   ... ]

我想根据时间绘制u[0]u[1]。我尝试使用l1=u[0:len(u)-1][0]l2=u[0:len(u)-1][1] 访问两个列表中u 的所有第一个和第二个元素,但它只给了我列表中的第一项。 有没有人有解决方案? 谢谢

【问题讨论】:

  • 你说的“基于时间”是什么意思?请提供一些例子。
  • 我有一个和你一样长的时间列表,像这样:t=[0,0.001, ...]

标签: python arrays python-3.x list numpy


【解决方案1】:

您应该将数组列表转换为单个 numpy 数组。

还要注意numpy 二维数组索引是由arr[row, column] 执行的。如果不按维度过滤,则使用:

from numpy import array

u = [array([ 2.06642033, -0.03448756]), array([ 2.03964994, -0.18737285]),
     array([ 1.99884859, -0.21461016]), array([ 1.95476809, -0.2254584 ]),
     array([ 1.90875336, -0.23472173]), array([ 1.86082857, -0.24471069])]

u = np.array(u)

res = u[:, 0]

# array([ 2.06642033,  2.03964994,  1.99884859,  1.95476809,  1.90875336,
#         1.86082857])

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多