Numpy 将数组数组重塑为 1D
Numpy reshape array of arrays to 1D
如何让 x 变成一维数组?
我发现像这样创建 x 很方便,
x=np.array([[0,-1,0]*12,[-1,0,0]*4])
print x
print len(x)
returns
array([ [0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0],
[-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0]], dtype=object)
2
我也试过这样弄,但是长度还是2
y=((0,1,0)*12,(-1,0,0)*4)
print y
returns
((0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0), (-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0))
我尝试使用 numpy.reshape(在 x 和 y 上):
np.reshape(x,48)
但我得到这个错误:
ValueError: total size of new array must be unchanged
当我像我一样声明 x 或 y 时,是否可以重塑它们?
我想你正在寻找一个长度为 48 的一维 numpy 数组。试试看,
import numpy as np
x=np.array([[0,-1,0]*12])
x= np.append(x,[-1,0,0]*4)
print (x)
print (len(x))
这会产生,
[ 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0
-1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0]
48
创建数组时,将列表与 +
连接起来,而不是将它们打包到另一个列表中:
x = np.array([0,-1,0]*12 + [-1,0,0]*4)
如何让 x 变成一维数组? 我发现像这样创建 x 很方便,
x=np.array([[0,-1,0]*12,[-1,0,0]*4])
print x
print len(x)
returns
array([ [0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0],
[-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0]], dtype=object)
2
我也试过这样弄,但是长度还是2
y=((0,1,0)*12,(-1,0,0)*4)
print y
returns
((0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0, 0, 1, 0), (-1, 0, 0, -1, 0, 0, -1, 0, 0, -1, 0, 0))
我尝试使用 numpy.reshape(在 x 和 y 上):
np.reshape(x,48)
但我得到这个错误:
ValueError: total size of new array must be unchanged
当我像我一样声明 x 或 y 时,是否可以重塑它们?
我想你正在寻找一个长度为 48 的一维 numpy 数组。试试看,
import numpy as np
x=np.array([[0,-1,0]*12])
x= np.append(x,[-1,0,0]*4)
print (x)
print (len(x))
这会产生,
[ 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0
-1 0 0 -1 0 0 -1 0 0 -1 0 -1 0 0 -1 0 0 -1 0 0 -1 0 0]
48
创建数组时,将列表与 +
连接起来,而不是将它们打包到另一个列表中:
x = np.array([0,-1,0]*12 + [-1,0,0]*4)