我现在正在进行如下所示的计算。我想根据相邻元素更新每个元素的值。我现在使用两个for循环,但它显示计算非常慢,因为有几个外部迭代。我想知道是否有任何方法可以加快这种计算>
import numpy as np
p = np.ones((5,5))
for i in range(1,4):
for j in range(1,4):
p[i,j]=p[i-1,j] + p[i+1,j] +2*p[i,j+1]+2*p[i,j-1]
print(p)
a,b,c,d是一些常数,p是numpy.array类型
示例输入:
[[ 1. 1. 1. 1. 1.]
[ 1. 6. 16. 36. 1.]
[ 1. 11. 41. 121. 1.]
[ 1. 16. 76. 276. 1.]
[ 1. 1. 1. 1. 1.]]
最终输出应为:
@Override
protected Response<JSONObject> parseNetworkResponse(NetworkResponse response) {
try {
String jsonString = new String(response.data, HttpHeaderParser.parseCharset(response.headers, PROTOCOL_CHARSET));
JSONObject jsonResponse = new JSONObject(jsonString);
// set token after receiving from login response
TokenHandler.setToken(response.headers.get("x-auth"));
return Response.success(jsonResponse, HttpHeaderParser.parseCacheHeaders(response));
} catch (UnsupportedEncodingException | JSONException e) {
return Response.error(new ParseError(e));
}
}
答案 0 :(得分:0)
没有足够的回复评论,但这并没有完全回答这个问题,但是如果你使用的是NumPy,你一定要看array broadcasting。很难确切地说出你的代码在做什么,但是使用广播应该可以更容易地更新整个矩阵而不是按值增值