我有三个单独的1d数组,包括数字列表,正方形和立方体(由'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
我很感激任何建议
答案 0 :(得分:1)
为什么不直接定义y
和z
?
y = x**2
z = x**3
然后简单地说:
stacked = np.column_stack((x,y,z))
为您提供形状len(x) * 3
答案 1 :(得分:1)
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。
答案 2 :(得分:0)
你确实想要column_stack。你试过了吗?
w = numpy.column_stack((x,y,z))
print(w)