【发布时间】:2018-08-05 12:38:32
【问题描述】:
我有一个 numpy 数组(比如 xs),我正在为此编写一个函数来创建另一个数组(比如 ys),该数组的值与 xs 的值相同,直到 xs 的前半部分和 xs 的两倍剩下的一半。例如,如果 xs=[0,1,2,3,4,5],则所需输出为 [0,1,2,6,8,10]
我写了以下函数:
import numpy as np
xs=np.arange(0,6,1)
def step(xs):
ys1=np.array([]);ys2=np.array([])
if xs.all() <=2:
ys1=xs
else:
ys2=xs*2
return np.concatenate((ys1,ys2))
print(xs,step(xs))
产生输出:`array([0., 1., 2., 3., 4., 5.]),即不执行第二个条件。有人知道如何解决吗?提前致谢。
【问题讨论】:
-
if xs.all() <=2:是True所以ys1被分配了xs并且ys2仍然是一个空数组。在串联时,您只需返回ys1与xs相同
标签: python arrays function numpy