Python 在一列中显示特定数字的数组中的所有值
对于第一列中的特定值,如何打印数组中的所有其他数字 示例:假设我有4列,如下所示: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
[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)