我有一个数字列表
l = [ 1 , 3, 5]
我想将其转换为 numpy 数组向量
import numpy as np
vec = np.asarray(l)
但是 vec 的尺寸没有设置
vec.shape
Answer: (3,)
我知道我能做到
vec.shape = (vec.shape[0], 1)
但是有没有更快、更短的方法将第二维设置为一维?
>>> vec = np.asarray(l).reshape((1,-1))
>>> vec.shape
(1, 3)
我想这就是你想要的......也许
我认为阅读这个(对我来说)更简单的方法是使用np.newaxis
:
a = np.array([1,3,5])
a.shape
#(3,)
b = a[np.newaxis,...]
print b
#[[1, 3, 4]]
b.shape
#(1, 3)
但这不是列向量......,也许你想要:
c = a[...,np.newaxis]
print c
#[[1],
# [3],
# [4]]
c.shape
#(3, 1)
您也可以使用新轴None
来代替np.newaxis
您想要的任何位置:
a[...,None]
#[[1],
# [3],
# [4]]