我有一大堆零和一,我需要计算
0 1 1 0 0 0 1 1
0 1, 1 0, 1 1, 0 0
我想排除所有其他子矩阵...例如
0 1 1 1
0 0, 1 0, etc.
在空间二元矩阵有元素,我想挑出这 4 个矩阵。我不能使用线性条件,因为
0 1 0 0 0 1
0 1 + 1 1 = 1 0
可以显式编写一个布尔值来显式检查这些,但是我失去了美妙的 numpy 速度......
我有一大堆零和一,我需要计算
0 1 1 0 0 0 1 1
0 1, 1 0, 1 1, 0 0
我想排除所有其他子矩阵...例如
0 1 1 1
0 0, 1 0, etc.
在空间二元矩阵有元素,我想挑出这 4 个矩阵。我不能使用线性条件,因为
0 1 0 0 0 1
0 1 + 1 1 = 1 0
可以显式编写一个布尔值来显式检查这些,但是我失去了美妙的 numpy 速度......
假设您试图排除相邻的子矩阵,您可以构建一个表示二进制子矩阵,然后检查有效类型的列表。IE,
# Represent 2 by 2 submatrices of A in binary
subs = A[::2,::2]+2*A[::2,1::2]+4*A[1::2,::2]+8*A[1::2,1::2]
allowed = ... # List of submatrices to count expressed in binary
for a in allowed:
print('count %d = %d'%(a,sum(subs==a))