ValueError:数组不能在 Python3.X 的 SpectralCoclustering 中包含 infs 或 NaNs

Posted

技术标签:

【中文标题】ValueError:数组不能在 Python3.X 的 SpectralCoclustering 中包含 infs 或 NaNs【英文标题】:ValueError: array must not contain infs or NaNs in SpectralCoclustering in Python3.X 【发布时间】:2017-12-25 05:11:15 【问题描述】:
data = np.genfromtxt("breastCancer.txt", delimiter=',').astype(np.float32)
data = data[~np.isnan(data).any(axis=1)]

ROW, COLUMN = data.shape

label = data[:, -1]
input = data[:, 1:COLUMN - 1]

scaler = preprocessing.MinMaxScaler(feature_range=(-1.0, 1.0))
scaler.fit(input)
input = scaler.transform(input)

model = SpectralCoClustering(n_clusters=3, random_state=0)
model.fit(input)

我尝试对 (-1.0, 1.0) 范围内的数据集进行双聚类。在我的数据中,我没有任何 inf 或 nan。但它会引发ValueError: array must not contain infs or NaNs in SpectralCoclustering 的错误。你能帮我么?我需要一个范围 (-1, 1) 中的数据集,所以我不想在正范围内更改它。

【问题讨论】:

我尝试了 [0,1] 范围内的数据集。它也会引发同样的错误。 【参考方案1】:

我花了两天时间解决了同样的问题。我的解决方案:在做model.fit(input) 之前,我从input 中删除了只有零的列:

remaining_collumns=input.getnnz(1)>0
input=input[remaining_collumns,:]
model.fit(input)

另请注意,在我的情况下,inputTfidfVectorizer.fit_transform 返回,格式为sparse.csr.csr_matrix

【讨论】:

嗨!只是想让您知道,您今天帮助了一名数据科学学生(又名我)完成了他的课程!非常感谢!!

以上是关于ValueError:数组不能在 Python3.X 的 SpectralCoclustering 中包含 infs 或 NaNs的主要内容,如果未能解决你的问题,请参考以下文章

Python 3 - ValueError: 找到包含 0 个样本的数组 (shape=(0, 11)),而 MinMaxScaler 至少需要 1

python3.6使用chardet模块总是报错ValueError: Expected a bytes object, not a unicode object

ValueError:检查目标时出错:预期 main_prediction 有 3 个维度,但得到了形状为 (1128, 1) 的数组

windows7,python3使用time.strftime()函数报ValueError: embedded null byte

ValueError: Cannot feed value of shape (2,) for Tensor u'Placeholder_2:0', which has shape &

Python | Keras:ValueError:检查目标时出错:预期conv2d_3有4个维度,但得到了有形状的数组(1006,5)