【发布时间】:2015-05-20 23:28:51
【问题描述】:
我想做的一个例子是,而不是如下所示:
Z_old = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]
for each_axes in range(len(Z_old)):
for each_point in range(len(Z_old[each_axes])):
Z_old[len(Z_old)-1-each_axes][each_point] = arbitrary_function(each_point, each_axes)
我现在不想用零初始化 Z_old 数组,而是在迭代它时用值填充它,这将类似于下面写的,尽管它的语法非常错误,但这就是我想要达到的结束。
Z = np.zeros((len(x_list), len(y_list))) for Z[len(x_list) -1 - counter_1][counter_2] is equal to power_at_each_point(counter_1, counter_2] for counter_1 in range(len(x_list)) and counter_2 in range(len(y_list))]
【问题讨论】:
-
你仍然专注于错误的事情。用 0 初始化数组几乎没有时间,所以不值得担心。问题在于内部循环,您在其中调用非常慢的
arbitrary_functionX*Y 次。这就是你所有时间都花在这上面的地方,所以这就是你需要优化的部分。 -
第一个表达式很好(使用
[x,y]索引)。第二个是对列表理解的错误模仿。 -
将来,如果您在创建与另一个问题相关的问题时包含指向它的链接,例如this,这将非常有帮助。有很多与这个问题相关的背景信息,除非他们碰巧记得那个问题,或者经历了与您上次经历的所有相同的 cmets 和编辑,否则没人会知道。
-
@abarnert 好的,下次我一定会包括在内,对不起。
标签: python numpy matrix multidimensional-array