是从此网址找到的解答。http://numpy-discussion.10968.n7.nabble.com/numpy-fromfunction-doesn-t-work-as-expected-td31641.html
遇到的问题大致是这样的,想要生成一个[[1,2],[1,2]],用numpy的fromfunction来做:
In [1]: import numpy as np In [2]: t = np.fromfunction(lambda i:[1, 2], (2,), dtype=int) In [3]: t Out[3]: [1, 2]
结果与期望不一样
网上查资料后才明白,看下面:
In [5]: def p(i): ...: print i ...: In [6]: u = np.fromfunction(p, (2,), dtype=int)
[0, 1]
这就明白了,传入fromfunction的参数i并不是整数,而是矩阵。
其他想法
想到了最近看斯坦福的ufldl教程时看到的一句话,说要养成用矩阵解决问题的思维。
当时有种捅破窗户纸的感觉,这应该是我以前未接触过的另一片天地。
矩阵可以部分的代替递归、循环,是一种批量操作的感觉。
同样因为这种批量操作,其效率肯定可以比一般的循环高一些。
而且相比其他,有更好的整体性。
当然,这只是初步的接触和想法,以后应该多练练,收集些这方面资料。