下午好,
我需要根据以下规则从1D创建2D阵列:\
- 二维数组不能包含
[["A1", "A1"], ["A2", "A2"], ["A3", "A3"], ["A4", "A4"]...]
- 数组不应重复,对我来说也是如此
[["A1", "A2"], ["A2", "A1"], ....]
\
- 例如输入数组
A ["A1", "A2", "A3", "A4"]
输出数组B [['A1' 'A2'] ['A1' 'A3']['A1' 'A4']['A2' 'A1']['A2' 'A3']['A2' 'A4']['A3' 'A1'] ['A3' 'A2'] ['A3' 'A4']['A4' 'A1'] ['A4' 'A2']['A4' 'A3']]
我需要[['A1' 'A2']['A1' 'A3']['A1' 'A4']['A2' 'A3']['A2' 'A4'] ['A3' 'A4']
import numpy as np
x = ("A1", "A2", "A3", "A4")
arr = []
for i in range(0, len(x)):
for j in range(0, len(x)):
if x[i] != x[j]:
arr.append((x[i], x[j]))
mylist = np.unique(arr, axis=0)
print(mylist)
怎么做呢?
先谢谢你。
2条答案
按热度按时间4ioopgfo1#
Python的标准库中有一个函数itertools.combinations可以做到这一点。
您也可以使用巢状循环(Nested Loop)在数组上反覆运算,自行撰写:
pnwntuvh2#
您只需要一个简单的if语句来检查元组是否已经存在: