python规范化奇怪的行为

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python规范化奇怪的行为相关的知识,希望对你有一定的参考价值。

我正在尝试根据一组声音样本进行训练。我想通过标准化阳性样品来使阴性样品更宽。

这是我的代码:

for sound in dogbarks:
    expandedsound = audio_to_metadata(sound)
    preprocessed_dogbarks.append(expandedsound)
for sound in noisesounds:
    expandedsound = audio_to_metadata(sound)
    preprocessed_noisesounds.append(expandedsound)

labels = [0]*len(preprocessed_noisesounds) + 
[1]*len(preprocessed_dogbarks)
assert len(labels) == len(preprocessed_noisesounds) + 
len(preprocessed_dogbarks)
allsounds = preprocessed_noisesounds + preprocessed_dogbarks

allsounds_normalized = normalize(allsounds)

当代码尝试规范化数组并且它在我的情况48中达到特定数量的成员时它返回错误:

~/.local/lib/python3.5/site-packages/sklearn/utils/validation.py in 
check_array(array, accept_sparse, dtype, order, copy, 
force_all_finite, ensure_2d, allow_nd, ensure_min_samples, 
ensure_min_features, warn_on_dtype, estimator)
    431                                       force_all_finite)
    432     else:
--> 433         array = np.array(array, dtype=dtype, order=order, copy=copy)
    434 
    435         if ensure_2d:
ValueError: setting an array element with a sequence.

但是,如果我运行会员编号48,它只能正常工作。任何人都可以给我一个线索吗?如果您愿意,我可以提供数据。

谢谢。

答案

因为我的问题没有简单的解决方案。我正在采取替代方式,循环并逐个规范化它并将其放回到数组中。

for sound in allsounds :
    allsounds_normalized.append(normalize([sound])[0])

如果你们有更好的解决方案,请告诉我,但就目前而言,这是解决方案。谢谢

以上是关于python规范化奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 多处理进程中运行较慢的 OpenCV 代码片段

Python MySQLdb 意外行为(?)

从 cython c 调用 python 函数时的奇怪行为

字典操作中的奇怪行为以及 Python 中的多处理

python(pytz)中的奇怪时区行为

奇怪的 Python 日期比较行为