python - 如何在循环中保存迭代如下?
问题描述
我使用两个 for 循环来遍历两个数组。我已设置条件只打印符合我条件的内容。
中的各个位置在数组comb_x 和comb_y 中。这会导致 for 循环中的条件
这很好,可以正常工作。
这是我的代码
import os
import numpy as np
from itertools import combinations
a=np.array([0, 0, 0, 1, 1, 1, 2, 2, 2])
b=np.array([0, 1, 2, 0, 1, 2, 0, 1, 2])
z1=np.array([1, 1])
z2=np.array([1, 1])
comb_x=np.array([0, 0, 1, 1])
comb_y=np.array([0, 1, 0, 1])
for (j), (k) in zip(a,b):
z1[:]=0
z1[:j]=1
x12=z1
z2[:]=0
z2[:k]=1
y12=z2
#print(x12,y12)
for (h),(n),(r) in zip(comb_x,comb_y,np.arange(0,4)):
if x12[h]==1 and y12[n]==1:
print('pravda',x12,y12)
我的输出按值对这些数字进行排序
我的输出:
[1 0] [1 0]
[1 0] [1 1]
[1 0] [1 1]
[1 1] [1 0]
[1 1] [1 0]
[1 1] [1 1]
[1 1] [1 1]
[1 1] [1 1]
[1 1] [1 1]
我需要它们在每次迭代中出现并跟随
所需输出
[1 0] [1 0]
[1 0] [1 1]
[1 1] [1 0]
[1 1] [1 1]
[1 0] [1 1]
[1 1] [1 1]
[1 1] [1 0]
[1 1] [1 1]
[1 1] [1 1]
为了更容易看到,我将在下面展示各个迭代及其结果应该是什么样子
第一次迭代:
[1 0] [1 0]
[1 0] [1 1]
[1 1] [1 0]
[1 1] [1 1]
第二次迭代:
[1 0] [1 1]
[1 1] [1 1]
第三次迭代:
[1 1] [1 0]
[1 1] [1 1]
第四次迭代:
[1 1] [1 1]
但正如你所看到的,它并没有通过迭代保存它们,而是按值升序对它们进行排序
是否可以根据迭代进行排列,使其仍然是一个numpy数组?
解决方案
推荐阅读
- ansible - 注册循环没有给出预期的输出 - Ansible
- keras - 为什么暗网模型到 keras 模型的转换会降低准确性
- angular - Angular Material 排序表 - 如何将标题文本右对齐?
- javascript - 使用 JavaScript 启动 Windows 10 设置?
- c - 仅使用 While 循环和 If 语句用 C 绘制 X
- javascript - 计算文本中特定标签的数量
- c# - Grpc.Core 更新到 2.23,System.MissingMethodException: Method not found: Void Grpc.Core.ClientBase`1..ctor(Grpc.Core.Channel)
- keras - 如何制作 N 个相同模型的副本并分别训练?
- c# - 默认情况下如何插入用户(客户端)条目?
- python - 如何修复错误 *No module named 'lgsvl',在运行用于运行 LG 模拟器的 python 脚本后?