python - 使用 zip 在 for 循环中追加 Numpy
问题描述
我有两个不同的列表,分别包含一些x
和z
值。从这两个中,我只需要获取一些值并将其分配x
到z
不同的行。
到目前为止,我试过这个:
import numpy as np
x = [1, 3, 6, 10, 15, 20]
z = [3, 5, 6, 9, 20, 25]
for x_val, z_val in zip(x, z):
if x_val > 6 and z_val > 6:
a = np.append(x_val, z_val)
我希望从中10, 15, 20
得到x
和9, 20, 25
,z
但我只得到同一行的最后一个值(20 和 25)。
a = [20, 25]
解决方案
老实说,我对您的预期输出不是 100% 清楚(也许更新问题以包括在内)。我在下面给出了几个不同的选项:
选项 1,使用numpy
:
a = np.array(x+z)
result = list(zip(*a[a>6].reshape(2, -1)))
输出:
[(10, 9), (15, 20), (20, 25)]
选项 2,如果你不想使用 numpy,你可以这样做:
result = [(x_, z_) for x_, z_ in zip(x, z) if all([x_>6, z_>6])]
输出:
[(10, 9), (15, 20), (20, 25)]
选项 3,另一种输出格式可以完成为:
result = list(zip(*[(x_, z_) for x_, z_ in zip(x, z) if all([x_>6, z_>6])]))
输出:
[(10, 15, 20), (9, 20, 25)]
推荐阅读
- .net - Microsoft 单元测试-将测试标记为仅按需运行的实用方法
- mongodb - 使用mongodb解释器在zeppelin notebook中声明全局变量?
- linux - 使用 inittab 中的 respawn 条目重新启动 linux 应用程序不起作用
- .net-core - 添加范围后未加载实体框架核心默认值
- mysql - H2 jdbc 异常 - 具有奇数个字符的十六进制字符串
- powershell - retrieve users of a group by group sid
- php - PHP 7.2 : how to check if in static mode
- c# - How detect send email failure on Exchange C#
- javascript - Vimeo Player JS error when creating player
- css - I cannot get grid-template-columns to work in IE