【问题标题】:Extracting elements from a 1D array. Getting error invalid index to scalar variable从一维数组中提取元素。获取标量变量的错误无效索引
【发布时间】:2021-12-30 20:07:51
【问题描述】:

我必须从一维数组中提取元素并写入文件。

import numpy as np
k0 =78
tpts = 10
x_mirror = [1,2,3,4,5,6,7,8,9,10]
alpha = -3
x_start = 3
u0 = []
for p in range(0,tpts):                              #initial condition at t = 0
    ts =  ((np.exp(alpha*((x_mirror[p]-x_start)**2))*(np.cos(k0*(x_mirror[p]-x_start)))))
    u0.append(ts)
u0_array = np.array(u0)[np.newaxis]
u0_array_transpose = np.transpose(u0_array)
matrix_A = np.zeros((tpts,tpts))  
matrix_A[tpts-1][tpts-1] = 56  
matrixC = matrix_A @ u0_array_transpose
matrixC2 = matrix_A @ u0
u_pre = np.array(np.zeros(tpts))
print(u0_array)

在此我想分别提取 u0_array 的假设元素。我得到我的 u0_array 为[[ 2.89793185e-06 -4.27075012e-02 1.00000000e+00 -4.27075012e-02 2.89793185e-06 9.14080657e-14 -7.91091805e-22 2.42062877e-33 -1.24204313e-47 1.15841796e-64]]。这只是一个例子。如何获得 u0_array 的不同元素?通过使用 u0[][],我得到了错误。非常感谢任何帮助。

【问题讨论】:

  • u0_array.flatten() ... u0_list = u0_array.tolist() ... 从这里,您可以访问所有不同的元素作为列表并仅使用 1 个索引(如果这是您所要求的)
  • 有没有其他方法可以在不使用.flatten将元素转换为列表的情况下获取元素?

标签: python arrays numpy matrix


【解决方案1】:

u0_array 是一个包含浮点数组的数组。要索引单个元素,请使用u0_array[0][(index to access)]。如评论所述,您也可以使用.flatten()

【讨论】:

  • 使用u0_array[0][(index to access)] 我收到错误list index out of range
  • 您要访问什么索引?
  • 我尝试获取 [0][1]、[0][2] 等...但出现错误
  • 奇怪,我可以访问 [0][1] 就好了 (-0.04270750124955338)。您确定在您发布代码后没有对代码进行任何其他更改吗?
  • 好吧,这是我的错,我放了括号。非常感谢您的帮助。给您带来不便,敬请见谅
猜你喜欢
  • 2017-01-07
  • 2020-10-06
  • 1970-01-01
  • 1970-01-01
  • 2020-09-19
  • 1970-01-01
  • 1970-01-01
  • 2014-10-10
  • 2020-05-17
相关资源
最近更新 更多