1

数字のリストがあります

l = [ 1 , 3, 5]

numpy配列ベクトルに変換したい

import numpy as np
vec = np.asarray(l)

しかし、vecの次元は設定されていません

vec.shape
Answer: (3,)

私は私ができることを知っています

vec.shape = (vec.shape[0], 1)

しかし、2 番目の次元を 1 に設定するためのより高速で短い方法はありますか?

4

2 に答える 2

5
>>> vec = np.asarray(l).reshape((1,-1)) 
>>> vec.shape
(1, 3)

私はあなたが望むものだと思います...多分

于 2013-04-24T18:53:17.290 に答える
1

これを(私にとって)より簡単に読む方法は、次を使用することだと思います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]]
于 2013-04-24T20:06:07.607 に答える