最近遇到一个数组和向量相关的坑,网上搜了个遍,发现都没有说明白的。记录一下。
1、在做机器学习时,发现有些函数需要向量,这时候需要把数组转化为向量。
2、在读取文件时,有时候读取的进来的是向量,这时候需要把向量转化为数组。
-
一、python中如何表示数组和向量的?
import numpy as np
array = np.array([[1,2,3,4,5]])#数组
print(array)
vector = np.array([1,2,3,4,5])#向量
print(vector)
- python的数组:
注意,np.array()括号里面是 两个中括号。debug后,数组的shape一定是(m,n)表示m行n列的数组。
即使是一维数组,也会出现1。比如,1行5列的数组shape就是 (1,5)。5行1列的shape就是(5,1)。
看一下 上面代码中的 array 在debug后的信息:
- python的向量
向量的生成只需要用一个中括号[]即可。向量的shape表示只有一个数。
-
二、python中向量和数组的转换
1.数组--->向量
import numpy as np
array = np.array([[1,2,3,4,5]])#数组
#数组--->向量
array2vec = array.ravel()
debug前后结果:
2.向量--->数组
两步走:1、先变为matrix;2、再由matrix变为ndarray
import numpy as np
vector = np.array([1,2,3,4,5])#向量
#向量--->数组
vector2arr = np.mat(vector)
vector2arr = vector2arr.A
debug前后结果:
觉得有用奖励博主一个赞,你的鼓励是我最大的动力!