我有一个带有以下元素值的列表“ a”。在我的代码中,我创建了一个列表:
a=[]
b=np.zeros(3)
c=[]
for i in range(0,4):
b[0]=i+1
b[1]=i+2
b[2]=i+3
c.append(deepcopy(b))
a.append(c)
c=[]
print(a)
输出:
[[array([1., 2., 3.]), array([2., 3., 4.]), array([3., 4., 5.]), array([4., 5., 6.])]]
上面的列表是我输入数据的示例
我试图制作数组
b=np.array(a)
array([[[1., 2., 3.],
[2., 3., 4.],
[3., 4., 5.],
[4., 5., 6.]]])
b.shape
(1,4,3)
但是我想使形状为(4,1,3)的b给出以下输出: 这样,当我访问
b[0] gives [1,2,3]
b[1] gives [2,3,4]
b[2] gives [3,4,5]
b[3] gives [4,5,6]
答案 0 :(得分:3)
有一个内置函数: b = np.vstack(a)
已编辑
使用np.vstack(a)
之后b=b.reshape(4,3,1)
这将提供所需的结果
b[0]- > [1,2,3]
答案 1 :(得分:1)
也许我遗漏了一些东西,但是您应该能够得到如下结果:
b = np.array(a[0])
print(b[0]) # [1. 2. 3.]
print(b[1]) # [2. 3. 4.]
print(b[2]) # [3. 4. 5.]
print(b[3]) # [4. 5. 6.]
np.array([a[0]]).reshape(4,1,3)
print(b[0]) #=> [[1. 2. 3.]]
print(b[1]) #=> [[2. 3. 4.]]
print(b[2]) #=> [[3. 4. 5.]]
print(b[3]) #=> [[4. 5. 6.]]
答案 2 :(得分:1)
编辑: 使用@orli答案更容易输入!
使用基本的Python 3。
import numpy as np
from copy import deepcopy
a=[]
b=np.zeros(3)
c=[]
for i in range(0,4):
b[0]=i+1
b[1]=i+2
b[2]=i+3
c.append(deepcopy(b))
a.append(c)
res = []
for r in a:
for c in r:
rw = []
for e in c.tolist():
rw.append(e)
res.append(rw)
print(res)
收益:
[[1.0, 2.0, 3.0], [2.0, 3.0, 4.0], [3.0, 4.0, 5.0], [4.0, 5.0, 6.0]]