考慮以下掩碼:
def maskA(n):
assert((n % 2) == 0)
sample_arr = [False, False]
bool_arr = np.random.choice(sample_arr, size=(n, n))
# print(bool_arr.shape)
for i in range(n):
for j in range(n):
if (i >= n//2) and (j < n//2):
bool_arr[i, j] = True
else:
bool_arr[i, j] = False
for i in range(n):
for j in range(n):
if (i < n//2) and (j >= n//2):
bool_arr[i, j] = True or bool_arr[i, j]
else:
bool_arr[i, j] = False or bool_arr[i, j]
return bool_arr
它在網路中的集群(2 xn/2 子網或真元素)之間選擇元素。
[[False False False True True True]
[False False False True True True]
[False False False True True True]
[ True True True False False False]
[ True True True False False False]
[ True True True False False False]]
有沒有可能讓它變得更好(更短、更干凈、更快)?
uj5u.com熱心網友回復:
您可以使用索引來分配值,而不是使用 for 回圈。
import numpy as np
def maskA(n):
assert((n % 2) == 0)
bool_arr = np.full((n, n), True)
bool_arr[0:int(n/2), 0:int(n/2)] = False
bool_arr[int(n/2):n, int(n/2):n] = False
return bool_arr
print(maskA(8))
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/453049.html
