ValueError:形状不匹配:



我正在尝试使用二进制集创建上三角形矩阵:

我正在创建所有可能的n x n二进制矩阵,只有上三角形值(不包括对角线)。对于n = 3的情况,我可以做一个for循环。这是3 × 3矩阵2^3 = 8个排列。所以是8个矩阵。当n = 4,5,6,…我得到一个形状不匹配错误。不知道为什么for循环不会迭代。

见下面的代码示例:

n = 3
# Now we need to make permutation of binary upper_count tuples
# This will give 2^n sets of n binary values.  
from itertools import *
t1 = list(product([0,1],repeat= n)) 
print(t1)
print('n')
# Now we create 2^n matrices of size nxn:
for i in t1:
m1 = np.zeros((n,n))
indices = np.triu_indices_from(m1,1) 
upper = m1[indices]
m1[indices] = i
print(m1)
print('n')

给出以下期望的输出:

[(0, 0, 0), (0, 0, 1), (0, 1, 0), (0, 1, 1), (1, 0, 0), (1, 0, 1), (1, 1, 0), (1, 1, 1)]

[[0. 0. 0.]
[0. 0. 0.]
[0. 0. 0.]]

[[0. 0. 0.]
[0. 0. 1.]
[0. 0. 0.]]

[[0. 0. 1.]
[0. 0. 0.]
[0. 0. 0.]]

[[0. 0. 1.]
[0. 0. 1.]
[0. 0. 0.]]

[[0. 1. 0.]
[0. 0. 0.]
[0. 0. 0.]]

[[0. 1. 0.]
[0. 0. 1.]
[0. 0. 0.]]

[[0. 1. 1.]
[0. 0. 0.]
[0. 0. 0.]]

[[0. 1. 1.]
[0. 0. 1.]
[0. 0. 0.]]

For n = 4:

我得到以下错误。我错过了什么?

[(0, 0, 0, 0), (0, 0, 0, 1), (0, 0, 1, 0), (0, 0, 1, 1), (0, 1, 0, 0), (0, 1, 0, 1), (0, 1, 1, 0), (0, 1, 1, 1), (1, 0, 0, 0), (1, 0, 0, 1), (1, 0, 1, 0), (1, 0, 1, 1), (1, 1, 0, 0), (1, 1, 0, 1), (1, 1, 1, 0), (1, 1, 1, 1)]

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-68-75f42bce2989> in <cell line: 8>()
12   upper = m1[indices]
13 
---> 14   m1[indices] = i
15   print(m1)
16   print('n')
ValueError: shape mismatch: value array of shape (4,) could not be broadcast to indexing result of shape (6,)

我的t1错了。我数错了。

from itertools import *
size_n = (n*(n-1))/2 
size_n = int(size_n)
t1 = list(product([0,1],repeat= size_n))

更新代码:

n = 4
# Now we need to make permutation of binary upper_count tuples
from itertools import *
size_n = (n*(n-1))/2 
size_n = int(size_n)
t1 = list(product([0,1],repeat= size_n))
print(t1)
print('n')
for i in t1:
print(i)
m1 = np.zeros((n,n))
indices = np.triu_indices_from(m1,1)
print('n') 
# print(m1)
upper = m1[indices] # error here.  
# print(upper)
m1[indices] = i
print(m1)
print('n')

预期结果

[(0, 0, 0, 0, 0, 0), (0, 0, 0, 0, 0, 1), (0, 0, 0, 0, 1, 0), (0, 0, 0, 0, 1, 1), (0, 0, 0, 1, 0, 0), (0, 0, 0, 1, 0, 1), (0, 0, 0, 1, 1, 0), (0, 0, 0, 1, 1, 1), (0, 0, 1, 0, 0, 0), (0, 0, 1, 0, 0, 1), (0, 0, 1, 0, 1, 0), (0, 0, 1, 0, 1, 1), (0, 0, 1, 1, 0, 0), (0, 0, 1, 1, 0, 1), (0, 0, 1, 1, 1, 0), (0, 0, 1, 1, 1, 1), (0, 1, 0, 0, 0, 0), (0, 1, 0, 0, 0, 1), (0, 1, 0, 0, 1, 0), (0, 1, 0, 0, 1, 1), (0, 1, 0, 1, 0, 0), (0, 1, 0, 1, 0, 1), (0, 1, 0, 1, 1, 0), (0, 1, 0, 1, 1, 1), (0, 1, 1, 0, 0, 0), (0, 1, 1, 0, 0, 1), (0, 1, 1, 0, 1, 0), (0, 1, 1, 0, 1, 1), (0, 1, 1, 1, 0, 0), (0, 1, 1, 1, 0, 1), (0, 1, 1, 1, 1, 0), (0, 1, 1, 1, 1, 1), (1, 0, 0, 0, 0, 0), (1, 0, 0, 0, 0, 1), (1, 0, 0, 0, 1, 0), (1, 0, 0, 0, 1, 1), (1, 0, 0, 1, 0, 0), (1, 0, 0, 1, 0, 1), (1, 0, 0, 1, 1, 0), (1, 0, 0, 1, 1, 1), (1, 0, 1, 0, 0, 0), (1, 0, 1, 0, 0, 1), (1, 0, 1, 0, 1, 0), (1, 0, 1, 0, 1, 1), (1, 0, 1, 1, 0, 0), (1, 0, 1, 1, 0, 1), (1, 0, 1, 1, 1, 0), (1, 0, 1, 1, 1, 1), (1, 1, 0, 0, 0, 0), (1, 1, 0, 0, 0, 1), (1, 1, 0, 0, 1, 0), (1, 1, 0, 0, 1, 1), (1, 1, 0, 1, 0, 0), (1, 1, 0, 1, 0, 1), (1, 1, 0, 1, 1, 0), (1, 1, 0, 1, 1, 1), (1, 1, 1, 0, 0, 0), (1, 1, 1, 0, 0, 1), (1, 1, 1, 0, 1, 0), (1, 1, 1, 0, 1, 1), (1, 1, 1, 1, 0, 0), (1, 1, 1, 1, 0, 1), (1, 1, 1, 1, 1, 0), (1, 1, 1, 1, 1, 1)]

(0, 0, 0, 0, 0, 0)

[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 0, 0, 0, 0, 1)

[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 0, 0, 0, 1, 0)

[[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 0, 0, 0, 1, 1)

[[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 0, 0, 1, 0, 0)

[[0. 0. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 0, 0, 1, 0, 1)

[[0. 0. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 0, 0, 1, 1, 0)

[[0. 0. 0. 0.]
[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 0, 0, 1, 1, 1)

[[0. 0. 0. 0.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 0, 1, 0, 0, 0)

[[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 0, 1, 0, 0, 1)

[[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 0, 1, 0, 1, 0)

[[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 0, 1, 0, 1, 1)

[[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 0, 1, 1, 0, 0)

[[0. 0. 0. 1.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 0, 1, 1, 0, 1)

[[0. 0. 0. 1.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 0, 1, 1, 1, 0)

[[0. 0. 0. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 0, 1, 1, 1, 1)

[[0. 0. 0. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 1, 0, 0, 0, 0)

[[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 1, 0, 0, 0, 1)

[[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 1, 0, 0, 1, 0)

[[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 1, 0, 0, 1, 1)

[[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 1, 0, 1, 0, 0)

[[0. 0. 1. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 1, 0, 1, 0, 1)

[[0. 0. 1. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 1, 0, 1, 1, 0)

[[0. 0. 1. 0.]
[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 1, 0, 1, 1, 1)

[[0. 0. 1. 0.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 1, 1, 0, 0, 0)

[[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 1, 1, 0, 0, 1)

[[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 1, 1, 0, 1, 0)

[[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 1, 1, 0, 1, 1)

[[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 1, 1, 1, 0, 0)

[[0. 0. 1. 1.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 1, 1, 1, 0, 1)

[[0. 0. 1. 1.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(0, 1, 1, 1, 1, 0)

[[0. 0. 1. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(0, 1, 1, 1, 1, 1)

[[0. 0. 1. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 0, 0, 0, 0, 0)

[[0. 1. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 0, 0, 0, 0, 1)

[[0. 1. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 0, 0, 0, 1, 0)

[[0. 1. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 0, 0, 0, 1, 1)

[[0. 1. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 0, 0, 1, 0, 0)

[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 0, 0, 1, 0, 1)

[[0. 1. 0. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 0, 0, 1, 1, 0)

[[0. 1. 0. 0.]
[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 0, 0, 1, 1, 1)

[[0. 1. 0. 0.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 0, 1, 0, 0, 0)

[[0. 1. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 0, 1, 0, 0, 1)

[[0. 1. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 0, 1, 0, 1, 0)

[[0. 1. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 0, 1, 0, 1, 1)

[[0. 1. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 0, 1, 1, 0, 0)

[[0. 1. 0. 1.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 0, 1, 1, 0, 1)

[[0. 1. 0. 1.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 0, 1, 1, 1, 0)

[[0. 1. 0. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 0, 1, 1, 1, 1)

[[0. 1. 0. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 1, 0, 0, 0, 0)

[[0. 1. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 1, 0, 0, 0, 1)

[[0. 1. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 1, 0, 0, 1, 0)

[[0. 1. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 1, 0, 0, 1, 1)

[[0. 1. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 1, 0, 1, 0, 0)

[[0. 1. 1. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 1, 0, 1, 0, 1)

[[0. 1. 1. 0.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 1, 0, 1, 1, 0)

[[0. 1. 1. 0.]
[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 1, 0, 1, 1, 1)

[[0. 1. 1. 0.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 1, 1, 0, 0, 0)

[[0. 1. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 1, 1, 0, 0, 1)

[[0. 1. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 1, 1, 0, 1, 0)

[[0. 1. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 1, 1, 0, 1, 1)

[[0. 1. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 1, 1, 1, 0, 0)

[[0. 1. 1. 1.]
[0. 0. 1. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 1, 1, 1, 0, 1)

[[0. 1. 1. 1.]
[0. 0. 1. 0.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

(1, 1, 1, 1, 1, 0)

[[0. 1. 1. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]

(1, 1, 1, 1, 1, 1)

[[0. 1. 1. 1.]
[0. 0. 1. 1.]
[0. 0. 0. 1.]
[0. 0. 0. 0.]]

相关内容

最新更新