python - for循环中的numpy数组
问题描述
我想在循环中完成以下操作:
A1 = a/(a+b)
B1 = A1*Z1
A2 = B1*Z2
B2 = A2*Z1
A3 = B2*Z2
B3 = A3*Z1
.
.
我尝试将值放在这样的列表中:
val_A = []
val_B = []
val_A.append(A1)
val_B.append(B1)
for i in range(5):
val_A.append(val_B[i]*Z1)
val_B.append(val_A[i]*Z2)
Output
[0.9090909090909091, -0.4958677685950413, -0.4958677685950413, 0.270473328324568, 0.270473328324568]
它适用于前 2 个数字,但随后会重复该数字两次。无法弄清楚发生了什么。
解决方案
解决方案:
val_A = []
val_B = []
val_A.append(A1)
val_B.append(B1)
for i in range(5):
val_A.append(val_B[-1] * Z2)
val_B.append(val_A[-1] * Z1)
演示:( 在一个简单的测试用例上,证明它有效)
# Manual
Z1 = 2
Z2 = 3
A1 = 5
B1 = 7
A2 = B1*Z2
B2 = A2*Z1
A3 = B2*Z2
B3 = A3*Z1
print([A1, A2, A3], [B1, B2, B3])
# With for loop
val_A = []
val_B = []
val_A.append(A1)
val_B.append(B1)
for i in range(2):
val_A.append(val_B[-1] * Z2)
val_B.append(val_A[-1] * Z1)
print(val_A, val_B)
产量:
[5, 21, 126] [7, 42, 252]
[5, 21, 126] [7, 42, 252]
解释:
OP 代码混淆了 Z1 和 Z2(B 应该乘以 Z2)并且还使用错误的索引从列表中选择项目(此代码通过使用“-1”来避免这种情况,总是从每个列表中获取最后一个项目) .
推荐阅读
- apache-kafka - 内存会话存储是否在 Kafka Streams 中实现?
- android - 如何在其他类 Android Kotlin 中使用 this 和 context?
- javascript - 使用 jsPDF 在 pdf 文件上下载 div:文本被剪切而不是更改页面 (Firefox/IE)
- java - (Spring boot) Optional<> Class 可以像 List<> Class 吗?
- scala - Gatling 编译失败
- javascript - Three.js - 通过来自组的光线投射检测碰撞
- r - R:如何使用 paste0 和 gsub 将向量与字符连接起来?
- javascript - invisible recaptcha “我们检测到您的网站没有验证 reCAPTCHA 解决方案”
- php - Laravel - Vue 块上传 - 前端和后端示例
- python - 需要帮助调用 defs 中的输入框