从 numpy 数组创建单个数字 - Python

数据挖掘 机器学习 Python 数据集 k-nn CSV
2022-02-15 05:50:58

我正在做一个性别分类项目。我在 Python 中使用 Numpy 数组提取图像的像素,类似于下面的:

[[[129 155 191] [123 150 185] [120 149 183]]

我如何使用这些值来提取一个有意义的数字,以便在 csv 文件中用于 K-最近邻算法。例如单个数字,如

0.34232

总之,我怎样才能[[[129 155 191] [123 150 185] [120 149 183]]变成一个像0.34232

1个回答

欢迎来到数据科学!你的问题需要更多细节......有很多方法可以将数组变成一个数字。你应该多说一点关于有意义的意思。

以下是一些示例,使用您的示例数组,这可能看起来非常简单,但确实构成了现代研究中使用的许多技术的基础:

In [1]: import numpy as np

In [2]: x = np.array([[129, 155, 191], [123, 150, 185], [120, 149, 183]], dtype=np.float32)

In [3]: x
Out[3]: 
array([[129., 155., 191.],
       [123., 150., 185.],
       [120., 149., 183.]], dtype=float32)

现在这里有一些(随机选择的)方法可以从你的数组中创建一个数字:

In [4]: np.mean(x)    # the mean / average
Out[4]: 153.88889

In [5]: np.sum(x)    # the sum
Out[5]: 1385.0

In [6]: np.std(x)    # the standard deviation
Out[6]: 25.722641

In [7]: np.linalg.norm(x)    # the Frobius norm - a distance measure
Out[7]: 468.07156

In [8]: np.max(x)
Out[8]: 191.0

这些可能看起来很简单,但如果我们将您的数组视为来自更大图像数组的单个块,那么这些可能代表用于在数组通过神经网络时对数组进行下采样的池化层。看看Keras 库中可用的池化层

您可能想要使用哪种方法在很大程度上取决于您的用例、数据集和模型。