Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在一列中显示特定数字的数组中的所有值_Python_Arrays_Sorting - Fatal编程技术网

Python 在一列中显示特定数字的数组中的所有值

Python 在一列中显示特定数字的数组中的所有值,python,arrays,sorting,Python,Arrays,Sorting,对于第一列中的特定值,如何打印数组中的所有其他数字 示例:假设我有4列,如下所示: [1 1 1] [1 1 2] [1 2 1] [1 2 2] [2 1 1] [2 1 2] [2 2 1] [2 2 2] 对于我来说,是否有一种直接的方法来提取第二列和第三列的数字,以及第一列中每个唯一的数字 我知道我可以按列对数组进行排序,找到每列中的唯一值,并找到这些唯一值的索引。我想我想要的是: col1val = 1 col2vals

对于第一列中的特定值,如何打印数组中的所有其他数字

示例:假设我有4列,如下所示:

[1   1   1]
[1   1   2]
[1   2   1]
[1   2   2]
[2   1   1]
[2   1   2]
[2   2   1]
[2   2   2]
对于我来说,是否有一种直接的方法来提取第二列和第三列的数字,以及第一列中每个唯一的数字

我知道我可以按列对数组进行排序,找到每列中的唯一值,并找到这些唯一值的索引。我想我想要的是:

col1val = 1
col2vals = [[1], [1], [2], [2]]
col3vals = [[1], [2], [1], [2]]
(或类似的东西)

编辑: 对@Randrian的建议表示衷心的“感谢”,这让我想到:

unique, indices = np.unique(a[:,0], return_index=True)
print(a[indices[0]:indices[1],1])  # column 2
其中:

[1 1 2 2]

如果使用numpy,则可以使用:

a = np.array([[1   1   1],
[1   1   2],
[1   2   1],
[1   2   2],
[2   1   1],
[2   1   2],
[2   2   1],
[2   2   2]])
并使用以下命令提取唯一值:

indices = np.unique(a[:,0])
我不清楚你到底想做什么,第一列中的唯一数字。可以将它们用作第二列和第三列的索引:

print(a[indices, 1])  # column 2
print(a[indices, 2])  # column 3

假设所有这些列都包含在一个名为
cols
的iterable对象中,我将按如下方式执行

def extract_values(cols, first_value):
    result = tuple()
    for col in cols:
        if col[0] == first_value:
            while len(result) < len(col) - 1:
                result += ([],)
            for idx, entry in enumerate(col[1:]):
                    result[idx].append(entry)
    return result
这可能也很容易修改,以使其适用于除第0条以外的其他条目,但我将留给读者作为练习

col1val = 1
col2val, col3val = extract_values(cols, col1val)