python - 不同大小数组的 Numpy 运算

标签 python arrays performance numpy

c=np.array([ 0.  ,  0.2,  0.22,  0.89,  0.99])
rnd = np.random.uniform(low=0.00, high=1.00, size=12)

我想看看 c 中有多少元素小于 rnd 中 12 个随机数中的每一个。它需要在 numpy 中并且不使用任何列表,以便速度更快。

输出将是一个包含 12 个元素的数组,每个元素描述每个元素有多少个元素小于 rnd 中的相应数字。

最佳答案

您可以使用broadcastingc1D 扩展到 2D 数组版本 None/np.newaxis 后以向量化方式对所有元素进行比较,然后使用 .sum(0) 沿行求和以进行计数,如下所示 -

(c[:,None] < rnd).sum(0)

看来你也可以使用高效的np.searchsorted就像这样-

np.searchsorted(c,rnd)

关于python - 不同大小数组的 Numpy 运算,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35522087/

相关文章:

javascript - 单个 for 循环如何遍历多个数组?

python - 可变数据类型的 Django 模型

python - 在 dtype obj 的 NumPy 数组中查找缺失值

python - 从 shell 前面添加 sys.path?

javascript - 如何在数组中保存相同的对象类型

javascript - 通过 javascript 与开发人员控制台测量时的不同延迟时间

performance - 为什么此 D 代码比类似的 C# 实现慢?

c++ - 任何快速有效的方式来生成 3D 网格?

python - flask-oauthlib 服务器不能很好地与 requests-oauthlib 客户端配合使用

python - 这是不好的做法吗 : assigning a return variable