Python:索引太多了

Python:索引太多了,python,arrays,numpy,scipy,indices,Python,Arrays,Numpy,Scipy,Indices,我试图从给定条件的数组中选择金额,并拒绝其他不合适的金额。条件是:如果金额[i,:]>x*金额[i-1,:]保留,否则保留先前的金额。基本上就像一个特雷肖尔德。我在一个新的数组1中填充所有这些选定的数量。最后,曲线阵列将全部提取并绘制一条曲线。不管我放什么样的曲子,曲线总是给我相同的曲线。这让我觉得我的Array1代码有问题 我正在使用where函数填充此数组: amount是一个2维数组,在第一个索引中包含日期,在第二个索引中包含金额。我将阵列的大小调整为相同的大小和形状 x=2 def (i

我试图从给定条件的数组中选择金额,并拒绝其他不合适的金额。条件是:如果金额[i,:]>x*金额[i-1,:]保留,否则保留先前的金额。基本上就像一个特雷肖尔德。我在一个新的数组1中填充所有这些选定的数量。最后,曲线阵列将全部提取并绘制一条曲线。不管我放什么样的曲子,曲线总是给我相同的曲线。这让我觉得我的Array1代码有问题

我正在使用where函数填充此数组: amount是一个2维数组,在第一个索引中包含日期,在第二个索引中包含金额。我将阵列的大小调整为相同的大小和形状

x=2
def (i,curve):
    Array1 = zeros(shape=(amount.shape[0],amount.shape[1]))

    Array1 = where(amount[i,:]>x*Array1[i-1,:],amount[i,:],where(amount[i,:]*x<Array1[i-1,:],amount[i,:],Array1[i-1,:]))

    #this function below just takes in Array1 and gives a curve.
    curve[:] = Array1[i,:]-Array1[i-1,:]

where在内部处理循环和索引,就像添加两个numpy数组而不指定索引一样。有关其使用示例,请参见本文件第13页。它有两种操作模式,可能会造成混淆。你现在的问题并不理想,因为有很多未定义的变量,比如数量。如果你能发布一个自包含的示例,那就最好了。请在本例中添加一个最小的、完整的、正在运行的示例,并将此错误示例添加到你的文章中。这段代码甚至不是有效的Python代码,我们也不知道数组的形状和内容。您的问题可能在于将Array1设置为1-D数组,而您后来希望它是2-D数组。也许在创建一个完整的运行示例时,您会自己解决问题。我在此处将代码复制到网站时出错;我现在把它们修好了;但问题仍然存在。我不能在这里写下整个代码,这样它就可以运行了。数组也从外部接收数据的量。基本上,amount和Array1的形状与Mr E相同,我知道where在内部处理循环和索引,而不需要指定索引,但是,如果没有某种索引来显示您正在选择哪一行,您将如何进行比较,就像我在代码段中所做的那样?谢谢哪一行有错误?如果是带有where的长索引,您可能需要评估这些片段,以准确确定哪个索引是错误的。它在何处线后排列1仍然是2d?
def curve(i, curve):
  Array1 = zeros(shape=(amount.shape[0],amount.shape[1])) 
  for u in xrange(5000):
   for i in xrange(5000):
    if amount[i,u] > 1.031*amount[i-1,u]:
      Array1[i]=amount[i,u]  
    else:
      Array1[i]=Array1[i-1,u] 

      curve[:] =Array1[i,u]-Array1[i-1,u]