gpt4 book ai didi

python, numpy 生成错误数据

转载 作者:太空宇宙 更新时间:2023-11-04 08:34:43 26 4
gpt4 key购买 nike

我正在尝试撰写有关处理不良数据的不同方法的文章。现在,我正在研究 Null/None/Nan。

我想将数组中的随机值转换为 Null,然后将其打印出来,或以其他方式对其进行操作。

我将数据创建为

iris = datasets.load_iris()
X = iris.data

并且可以制作一个随机的面具

mask = np.random.random(size=X.shape)
mask = np.array([[True if y< .9 else False for y in x] for x in mask])

但我不知道如何将该掩码应用于数据。我想做的是如果 mask 中的相应值是 True,则保留 X 中的值,否则将其转换为 None

我现在做的方式并不漂亮,我觉得存在更 pythonic 的方式

i= 0
while i < len(X):
j=0
while j < len(X[i]):
X[i][j] = X[i][j] if mask[i][j] else None
j=j+1
i=i+1
print(X)

最佳答案

mask = np.random.choice([False, True], size=X.shape, p=[0.9, 0.1])
X[mask] = np.nan

如果你想看看它是如何工作的,这里有一个与你的数据集的最小 ipython session

In [1]: import numpy as np
In [2]: from sklearn import datasets
In [3]: iris = datasets.load_iris()
In [4]: X = iris.data[:6]
In [5]: X
Out[5]:
array([[5.1, 3.5, 1.4, 0.2],
[4.9, 3. , 1.4, 0.2],
[4.7, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5. , 3.6, 1.4, 0.2],
[5.4, 3.9, 1.7, 0.4]])

In [6]: mask = np.random.choice([False, True], size=X.shape, p=[0.9, 0.1])
In [7]: mask.astype(int)
Out[7]:
array([[0, 0, 0, 0],
[1, 0, 0, 0],
[1, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 1, 0, 0]])

In [8]: X[mask] = np.nan
In [9]: X
Out[9]:
array([[5.1, 3.5, 1.4, 0.2],
[nan, 3. , 1.4, 0.2],
[nan, 3.2, 1.3, 0.2],
[4.6, 3.1, 1.5, 0.2],
[5. , 3.6, 1.4, 0.2],
[5.4, nan, 1.7, 0.4]])

关于python, numpy 生成错误数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50136919/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com