我可以从这些单独的列表中迭代地分割我需要的位置并将它们放入另一个列表“系数”中,如下所示?
Posted
技术标签:
【中文标题】我可以从这些单独的列表中迭代地分割我需要的位置并将它们放入另一个列表“系数”中,如下所示?【英文标题】:Can I iteratively slice the position I need from these separate lists and put them into another list 'coefficient' as shown below? 【发布时间】:2021-06-07 00:36:30 【问题描述】:我想要做的是遍历每个p
列表的位置并将其放入coefficients
中:coefficients = [1, 2, 5, 8]
暂停(在某种意义上)并使用@987654324 使用这组系数进行计算@。在迭代到每个 p
的下一个位置并为下一次迭代生成:coefficients = [1, 3, 6, 9]
然后继续进行更多迭代。
p1 = [2, 3, 4]
p2 = [5, 6, 7]
p3 = [8, 9, 10]
coefficients = [1, p1[], p2[], p3[]] # coefficients = [1, p1[0], p2[0], p3[0]] -> next comment
# coefficients = [1, 2 , 5, 8]
roots = np.roots(coefficients)
我想要什么:
p1 = [2, 3, 4]
p2 = [5, 6, 7]
p3 = [8, 9, 10]
#After parsing through the data for the 1st iteration:
coefficients = [1,2,5,8]
#Calculate it with np.roots()
roots = np.roots(coefficients)
然后是下一次迭代:
#After parsing through the data for the 2nd iteration:
coefficients = [1,3,6,9] # coefficients = [1, p1[1], p2[1], p3[1]] -> next comment
# coefficients = [1, 3 , 6, 9]
#Calculate it with np.roots()
roots = np.roots(coefficients)
【问题讨论】:
我想用一个循环来自动化这个,比如 for 循环。 如果您将列表转换为矩阵,您的任务会变得更容易。有这种可能吗? 是的,这是可能的。但是,我是否仍然能够检索我想要的位置,并且只有 3 个系数,如上所示? 【参考方案1】:所以我将您的问题转换为矩阵并将结果也显示为矩阵。您可以使用此方法并将其扩展到所需的行数和列数。我正在使用矩阵运算。 coefs
是包含您想要的系数列表的矩阵,roots
包含这些系数的根。
import numpy as np
# Let n be number of rows and m be number of columns
n = 3 # or number of lists
m = 3
# Save the data as a matrix
p = [[2, 3, 4],
[5, 6, 7],
[8, 9, 10]]
coefs = []
roots = []
for i in range(m):
coef = [1,]
for j in range(n):
coef.append(p[j][i])
# Add to the coefficients matrix and roots matrix
coefs.append(coef)
roots.append(np.roots(coef))
# Display results
print("Coefficient list 1", coefs[0])
print("Coefficient list 2", coefs[1])
print("Coefficient list 3", coefs[2])
print("Roots list 1", roots[0])
print("Roots list 2", roots[1])
print("Roots list 3", roots[2])
这就是输出的样子。
【讨论】:
【参考方案2】:您可以像这样连接您的数据:
coefficients = np.array([[1, 1, 1], p1, p2, p3]).T
不幸的是,np.roots
只接受一个多项式,因此您必须将它们插入一个循环中。
roots = [np.roots(p) for p in coefficients]
【讨论】:
以上是关于我可以从这些单独的列表中迭代地分割我需要的位置并将它们放入另一个列表“系数”中,如下所示?的主要内容,如果未能解决你的问题,请参考以下文章