我有一个非常简单的问题! 我如何合并两个numpy的阵列增加尺寸:合并两个Numpy Array
假设我有以下阵列:
a=[1,2]
b=[3,4,5]
我需要这样的结果:
c=[[1,2],[3,4,5]
然而
np.concatenate((a,b),axis=0)
不起作用!
谢谢!
我有一个非常简单的问题! 我如何合并两个numpy的阵列增加尺寸:合并两个Numpy Array
假设我有以下阵列:
a=[1,2]
b=[3,4,5]
我需要这样的结果:
c=[[1,2],[3,4,5]
然而
np.concatenate((a,b),axis=0)
不起作用!
谢谢!
您只需执行以下操作即可获得您想要的结果。
c = [a,b]
或者
c = np.array([a,b])
结果:
[[1, 2], [3, 4, 5]]
您能否显示'c'的'repr' - 查看类型和dtype? – hpaulj
把它们放在一起在一个列表:
In [269]: c = [a,b]
In [270]: c
Out[270]: [[1, 2], [3, 4, 5]]
使从一个数组不起作用v ERY很好:
In [271]: np.array(c)
Out[271]: array([list([1, 2]), list([3, 4, 5])], dtype=object)
但如果你的目标只是写的名单文件,CSV风格,我们可以这样做:
In [272]: for row in c:
...: line=''
...: for x in row:
...: line += '%5s'%x
...: print(line)
...:
1 2
3 4 5
对于文件刚刚替补为print
文件写入。
numpy
有一个不错的savetxt
,但它需要一个很好的二维数组。那个衣衫褴褛的1d对象dtype数组不起作用。
itertools.zip_longest
也可用于'填充'c
的元素。但简单地写入文件是最简单的。使用zip_longest
填充行,然后使用savetxt
来编写csv。请注意,“空白”分隔“细胞”:
In [321]: rows =list(zip(*zip_longest(*c,fillvalue='')))
In [322]: rows
Out[322]: [(1, 2, ''), (3, 4, 5)]
In [323]: np.savetxt('foo.txt',rows, fmt='%5s',delimiter=',')
In [324]: cat foo.txt
1, 2,
3, 4, 5
与适当的衬垫,我可以重新加载CSV(可能需要填充值拨弄):
In [328]: np.genfromtxt('foo.txt',delimiter=',')
Out[328]:
array([[ 1., 2., nan],
[ 3., 4., 5.]])
你什么错误? – Sam51
你为什么要这样做?这个数组不会有很多'numpy.array'属性。 – Akavall
不要错误。我的结果是[1,2,3,4,5] – Elham