我有三个独立的一维数组,分别是数字列表、它们的平方和立方(由一个“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
我会很感激任何建议
3条答案
按热度按时间bz4sfanl1#
为什么不直接定义
y
和z
呢?然后简单地说:
它给出了
len(x) * 3
形状的二维数组jrcvhitl2#
当使用数组时,你应该尽可能地避免for循环,这是数组的要点。
a = np.zeros((len(x),3))
创建一个长度与x相同的3列数组a[:,i]
是对该数组第“i”列的引用(即选择沿着该(i
)列的所有值(由:
表示))我强烈建议你看看Numpy Tutorial。
5n0oy7gb3#
您确实需要column_stack。您是否尝试过: