如何在python中创建一个N次方的特征向量?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在python中创建一个N次方的特征向量?相关的知识,希望对你有一定的参考价值。
我有一个图像的20个像素值,我想把它们存储在一个20D的特征向量中,而不是一个20长度的特征向量。我是Python的新手,所以我不知道在Python中,一个常规数组是否被认为是一个n-dimentional向量,或者我需要以某种方式向量化一个单一数组。这些是像素值。
[245, 247, 199, 199, 210, 213, 216, 196, 225,
199, 189, 189, 195, 221, 225, 201, 221, 201, 216, 222]
我想把它们变成一个20d的二维向量,我应该怎么做?
答案
如果我理解正确的话,你的解数组的形状应该是(20,1)。要做到这一点,np.reshape是最快速和最简单的方法。下面是做这个的代码。
np.reshape(your_array,(20,1))
另一答案
你可以对每个值进行处理,然后将其转换为n维向量,得到20 -D的向量化数组。
def convertN(arr):
#create n-dimensional arr
#Return n-dimensional arr
input =[245,247,199...216,222]
for i,v in enumerate(input):
input[i] = convertN(v)
print(input)
另一答案
有几种方法可以做到这一点。你可以在保持它作为一个列表的同时进行处理。
l = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[[i] for i in l]
或者:
list(map(lambda x: [x], l))
输出:
Out[21]: [[1], [2], [3], [4], [5], [6], [7], [8], [9], [10]]
或者使用许多方法中的一种来为一个数组增加一个维度。numpy
阵列。
import numpy as np
arr = np.array(l)
所有这些都是等价的。
arr[Ellipsis, None]
np.expand_dims(arr, -1)
np.reshape(-1, 1)
输出:
array([[ 1],
[ 2],
[ 3],
[ 4],
[ 5],
[ 6],
[ 7],
[ 8],
[ 9],
[10]])
以上是关于如何在python中创建一个N次方的特征向量?的主要内容,如果未能解决你的问题,请参考以下文章