[英]How to simplify the for loop
我有一個 for 循環來生成常規圖案圖像。 請分享如何用更少的行來簡化 for 循環。
import numpy as np
import matplotlib.pyplot as plt
m, n = 100, 100
grid_img = np.zeros([m,n])
x = np.linspace(0, 1, m)
y = np.linspace(0, 1, n)
for i in range(np.size(x)):
for j in range(np.size(y)):
xi = i*np.pi/4
yi = j*np.pi/4
grid_img[i][j] = np.sin(xi)+np.sin(yi)
grid_img[grid_img<1.5] = 0
您可以用一行列表理解完全替換兩個for
循環,但這會損害可讀性。
li = [ [ np.sin(i*np.pi/4) + np.sin(j*np.pi/4) for j in range(np.size(y)) ] for i in range(np.size(x)) ]
這將創建一個二維 Python 列表。 然后,您可能希望將其更改為 numpy 數組以用於<1.5
條件:
grid_img = np.array(li)
grid_img[grid_img<1.5] = 0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.