2017-02-21 26 views
0

我碰巧遇到术语:的Python的numpy的循环

np.array([[0. for _ in range(20)] for _ in range(50)])

这让我对20×50

然而矩阵中的所有0.0,我不喜欢这样的句法。我想知道是否有其他方式做到这一点?我想0为0.0(如浮点数)。

感谢

+0

尝试'[在范围[0.0对于i(3)]在范围Ĵ(5)]]'。这是基本的Python列表理解。不要使用'_'来抛出。下一次尝试'[[(I,J),其中i在范围(3)]在范围Ĵ(5)]]'。阵列的部分是一样'np.array([[1,2],[3,4])'。 – hpaulj

回答

2
np.zeros((20, 50), dtype=np.float32) # or any other type; default: np.float64 

Link to the Docs

备注:没有经验的numpy的用户将使用的方法在你的榜样!

+0

我不会理解'for _ in' notation – wrek

+0

但这不是问题的关键吗?你确实要求一个替代方案,我提出了最自然的方案。为了回答您的其他问题:'''_'''什么特别的。很多人用它来纪念这将nevber使用的变量。你可以把它叫做'''x'''太不改变任何东西!剩下的就是基本的python-stuff(迭代语法)。 – sascha

+1

@wrek你可以在这里找到关于这方面的信息:http://stackoverflow.com/q/5893163/1394393。被接受的答案中的#3就是它在这里使用的。 – jpmc26

1
>>> a=np.zeros([5,8]) 
>>> a 
array([[ 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0.], 
     [ 0., 0., 0., 0., 0., 0., 0., 0.]]) 
>>> type(a[1][1]) 
<type 'numpy.float64'> 
>>> 

您可以从代码中看到默认格式为float64。