生成数据类型为浮点型的矩阵的最快方法是什么?

3
我正在尝试使用以下代码生成一个数据类型为浮点数的10000*10000矩阵,该矩阵包含非零条目:
import numpy as np
list_going_in=np.random.rand(10000,10000)

但是生成需要超过一秒钟的时间,是否有比这更快的方法来完成这个任务呢?

感谢您的帮助。


2
使用 np.empty() - Divakar
@Divakar 但它里面只有零,我想要里面有随机浮点数。 - Rohit Sharma
除非您事先存储随机数并每次使用相同的随机数,否则不行。 - whackamadoodle3000
1
你需要随机数还是非零数?np.empty()返回未初始化的数组,这意味着“之前有什么就是什么”。 - Joe
3个回答

6

不,没有更快的方法。生成随机数的开销限制了您的速度。唯一能够优化这些事情的方法是如果矩阵中有某种结构(例如全部为0、三角形或稀疏等)。如果每个单元格都不同,那么您必须分别计算和存储每个单元格。

据我所知, np.random 可能是最快的,并且在任何情况下都很接近。


谢谢您的回答,我是否可以生成一个空矩阵,然后执行操作使其包含随机数(例如乘法或加法等)? - Rohit Sharma
请提出建议,如果一个子集非空至少是什么。 - Rohit Sharma
@RohitSharma 这不是在SO中工作的方式。这回答了你最初的问题,现在改变它是不礼貌的。如果你愿意,接受这个答案,并写下另一个问题,详细说明你需要完成的任务,否则我只能猜测。我建议在你的新问题中也写下你的最终目标(查看xy问题)。 - kabanus
请将以下与编程有关的内容从英语翻译成中文。只返回已翻译的文本:如果您想让我查看,请在评论中放置链接。 - kabanus
请问您能否建议一下您所提到的方法? - Rohit Sharma
显示剩余3条评论

2

如果我没记错的话,这种情况只会在开发神经网络时出现,我建议您使用TensorFlow:

    import tensorflow as tf
    tf.random_uniform(
    shape,
    minval=0,
    maxval=None,
    dtype=tf.float32,
    seed=None,
    name=None
)

2
您可以使用“empty”来实现此目的:
例如,像这样的内容:
np.empty((1000,1000))+np.empty((1000))

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接