擅长:python、mysql、java
<p>如果您对库足够熟悉,那么在纯numpy中这是最简单的方法:</p>
<pre><code># Create some fake data
np.random.seed(100)
fake_im_arr = np.random.randint(low=0, high=2, size=(2000,2000))
# Function definition for creating masks
def create_circle_mask(X_arr, Y_arr, center, radius):
c_x, c_y = center
dists_sqrd = (X_arr - c_x)**2 + (Y_arr - c_y)**2
return dists_sqrd <= radius**2
# Using the two together:
center, radius = (1000, 1000), 5
size_x, size_y = fake_im_arr.shape
mask = create_circle_mask(*np.ogrid[0:size_x, 0:size_y], center=center, radius=radius)
n_black_in_circle = ((fake_im_arr == 1) & mask).sum() # This is your answer (39 in this case)
</code></pre>
<p>要查看各种阵列的外观:</p>
^{pr2}$