python 组合阵列

e7arh2l6  于 2022-12-25  发布在  Python
关注(0)|答案(3)|浏览(176)

我有三个独立的一维数组,分别是数字列表、它们的平方和立方(由一个“for”循环创建)。我希望这些数组出现在三个对应的列中,但是我尝试了column_stack函数,python说它没有定义。我读过关于vstack和hstack函数的文章,但是不知道该用哪个函数,它们到底做什么。到目前为止,我的代码是:

import numpy
makearange = lambda a: numpy.arange(int(a[0]),int(a[1]),int(a[2]))
x = makearange(raw_input('Enter start,stop,increment: ').split(','))
y = numpy.zeros(len(x), dtype=int)
z = numpy.zeros(len(x), dtype=int)
for i in range(len(x)):
    y[i] = x[i]**2
for i in range(len(x)):
    z[i] = x[i]**3
print 'original array: ',x
print 'squared array: ',y
print 'cubed array: ', z

我会很感激任何建议

bz4sfanl

bz4sfanl1#

为什么不直接定义yz呢?

y = x**2
z = x**3

然后简单地说:

stacked = np.column_stack((x,y,z))

它给出了len(x) * 3形状的二维数组

jrcvhitl

jrcvhitl2#

import numpy
makearange = lambda a: numpy.arange(int(a[0]),int(a[1]),int(a[2]))
x = makearange(raw_input('Enter start,stop,increment: ').split(','))
a = np.zeros((len(x),3))
a[:,0] = x
a[:,1] = x**2
a[:,2] = x**3

当使用数组时,你应该尽可能地避免for循环,这是数组的要点。
a = np.zeros((len(x),3))创建一个长度与x相同的3列数组a[:,i]是对该数组第“i”列的引用(即选择沿着该(i)列的所有值(由:表示))
我强烈建议你看看Numpy Tutorial

5n0oy7gb

5n0oy7gb3#

您确实需要column_stack。您是否尝试过:

w = numpy.column_stack((x,y,z))
print(w)

相关问题