使用numpy的fromfunction要注意参数

是从此网址找到的解答。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教程时看到的一句话,说要养成用矩阵解决问题的思维。

当时有种捅破窗户纸的感觉,这应该是我以前未接触过的另一片天地。

矩阵可以部分的代替递归、循环,是一种批量操作的感觉。

同样因为这种批量操作,其效率肯定可以比一般的循环高一些。

而且相比其他,有更好的整体性。

当然,这只是初步的接触和想法,以后应该多练练,收集些这方面资料。

posted @ 2013-08-19 22:10  克斯额的支  阅读(1024)  评论(0编辑  收藏  举报