使用随机放置的 NaN 创建示例 numpy 数组

2024-05-18

出于测试目的,我想创建一个M by Nnumpy 数组与c随机放置的 NaN

import numpy as np

M = 10;
N = 5;
c = 15;
A = np.random.randn(M,N)

A[mask] = np.nan

我在创建时遇到问题mask with c真正的元素,或者这可以直接用索引来完成?


您可以使用np.random.choice http://docs.scipy.org/doc/numpy-dev/reference/generated/numpy.random.choice.html与可选的replace=False for random selection without replacement并在扁平化版本上使用它们A(完成了.ravel() http://docs.scipy.org/doc/numpy/reference/generated/numpy.ravel.html),就像这样 -

A.ravel()[np.random.choice(A.size, c, replace=False)] = np.nan

样本运行 -

In [100]: A
Out[100]: 
array([[-0.35365726,  0.26754527, -0.44985524, -1.29520237,  2.01505444],
       [ 0.01319146,  0.65150356, -2.32054478,  0.40924753,  0.24761671],
       [ 0.3014714 , -0.80688589, -2.61431163,  0.07787956,  1.23381951],
       [-1.70725777,  0.07856845, -1.04354202, -0.68904925,  1.07161002],
       [-1.08061614,  1.17728247, -1.5913516 , -1.87601976,  1.14655867],
       [ 1.12542853, -0.26290025, -1.0371326 ,  0.53019033, -1.20766258],
       [ 1.00692277,  0.171661  , -0.89646634,  1.87619114, -1.04900026],
       [ 0.22238353, -0.6523747 , -0.38951426,  0.78449948, -1.14698869],
       [ 0.58023183,  1.99987331, -0.85938155,  1.4211672 , -0.43369898],
       [-2.15682219, -0.6872121 , -1.28073816, -0.97523148, -2.27967001]])

In [101]: A.ravel()[np.random.choice(A.size, c, replace=False)] = np.nan

In [102]: A
Out[102]: 
array([[        nan,  0.26754527, -0.44985524,         nan,  2.01505444],
       [ 0.01319146,  0.65150356, -2.32054478,         nan,  0.24761671],
       [        nan, -0.80688589,         nan,         nan,  1.23381951],
       [        nan,         nan, -1.04354202, -0.68904925,  1.07161002],
       [-1.08061614,  1.17728247, -1.5913516 ,         nan,  1.14655867],
       [ 1.12542853,         nan, -1.0371326 ,  0.53019033, -1.20766258],
       [        nan,  0.171661  , -0.89646634,         nan,         nan],
       [ 0.22238353, -0.6523747 , -0.38951426,  0.78449948, -1.14698869],
       [ 0.58023183,  1.99987331, -0.85938155,         nan, -0.43369898],
       [-2.15682219, -0.6872121 , -1.28073816, -0.97523148,         nan]])
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用随机放置的 NaN 创建示例 numpy 数组 的相关文章

随机推荐