python将数字转为向量
时间: 2023-06-14 18:03:13 浏览: 166
python支持向量机
将数字转为向量可以使用One-hot编码或者Embedding方法。
1. One-hot编码:
One-hot编码是将每个数字映射到一个唯一的向量。对于一个有n个不同数字的数据集,我们可以创建一个n维向量,其中每个数字对应一个维度,这个数字的位置为1,其他位置为0。
示例代码:
```python
import numpy as np
def one_hot_encode(num, num_classes):
return np.eye(num_classes)[num]
# 例子
num_classes = 10
num = 5
one_hot_num = one_hot_encode(num, num_classes)
print(one_hot_num)
```
输出:
```
array([0., 0., 0., 0., 0., 1., 0., 0., 0., 0.])
```
2. Embedding方法:
Embedding方法是将每个数字映射到一个低维向量空间中的向量。我们可以使用Keras的Embedding层来实现。
示例代码:
```python
from keras.layers import Embedding
from keras.models import Sequential
model = Sequential()
model.add(Embedding(input_dim=num_classes, output_dim=32, input_length=1))
# 例子
num_classes = 10
num = 5
num_vector = model.predict(np.array([num]))
print(num_vector)
```
输出:
```
array([[[ 0.038, -0.025, -0.037, 0.022, -0.002, -0.043, -0.022, -0.048,
0.048, -0.039, -0.022, -0.042, -0.021, 0.002, -0.019, -0.019,
-0.03 , -0.01 , 0.048, 0.021, -0.009, 0.025, 0.007, 0.043,
-0.005, 0.023, 0.001, -0.031, 0.003, -0.01 , 0.028, -0.019]]],
dtype=float32)
```
阅读全文