如何以列表理解方式编写下面的代码?
Residual = np.zeros((noRows, noRows))
Dist = np.zeros((noRows, noRows))
for i in range(noRows):
for j in range(noRows):
Residual[i][j] = (data[data.columns[2]][i]-data[data.columns[2]][j])**2
Dist[i][j] = (data[data.columns[0]][i]-data[data.columns[1]][j])**2
答案 0 :(得分:0)
我们没有完整的代码,但从我从代码段中看到的内容,解决方案应该是这样的:
Residual = [(data[data.columns[2]][i]-data[data.columns[2]][j])**2 for i in range(noRows) for j in range(noRows)]
Dist = [(data[data.columns[0]][i]-data[data.columns[1]][j])**2 for i in range(noRows) for j in range(noRows)]
例如:
noRows = 5
l = [i+j for i in range(noRows) for j in range(noRows)]
print(l)
输出将是:
[0, 1, 2, 3, 4, 1, 2, 3, 4, 5, 2, 3, 4, 5, 6, 3, 4, 5, 6, 7, 4, 5, 6, 7, 8]
Press any key to continue . . .
在你的情况下,与" i + j"相比,声明会更复杂。操作....但列表理解应该是正确的。