如何解决从for循环到numpy点实现
|N=100
reliab=zeros((N,N))
for i in range(N):
for j in range(N):
if random() < 0.6:
reliab[i,j] = 1
else:
reliab[i,j] = 0
就像在我的代码中一样,这种矩阵填充被调用了很多次,这些for循环应该用点积来更改...但是我不知道该怎么做...
有人愿意帮助我吗?
解决方法
我不确定我是否完全理解您的问题,但是以下几行应与您的代码做同样的事情:
reliab = numpy.int32(numpy.random.rand(N,N) < 0.6)
, >>> import numpy as np
>>> reliab = np.random.random((N,N))
>>> reliab = reliab < 0.6
>>> reliab.dtype = np.int8
>>> reliab
array([[0,...,1,1],[0,0],[1,0]],dtype=int8)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。