【问题标题】:python, large ndarray append row in for looppython,大ndarray在for循环中追加行
【发布时间】:2017-03-09 06:42:45
【问题描述】:

我正在使用 python 进行信号处理。

我需要使用一个函数来处理大量装载数据。

我想像下面的基础一样实现

filtedSignal =[]
for i in range(0,N):
  filtedSignal = filtedSignal.append(filtedSignal,fft(signal[i],fre,N,B)) # it's returns ndarray

我想将每个信号插入一行。 所以,我使用numpy.vstack()。 但是,在第一个循环中,它不能合并。

谁能帮我解决这个问题?

【问题讨论】:

  • 关闭 ')' 丢失..
  • 感谢您提及。
  • filtedSignal = filtedSignal.extend(fft(signal[i],fre,N,B))
  • 感谢您的帮助。但它只需要使用 filtedSignal.append(fft(signal[i],fre,N,B))
  • 在这种情况下强烈建议使用嵌套列表进行数组构造,然后转换为ndarray。 numpy 在逐行构建数组方面效率不高。所以filtedSignal = [fft(signal[i],fre,N,B) for i in range(0,N)]; filtedsignal=np.array(filtedsignal)

标签: python numpy multidimensional-array scipy


【解决方案1】:

你从一个列表开始;列表追加就地修改

filtedSignal =[]
for i in range(0,N):
     filtedSignal.append(fft(signal[i], fre, N, B))

看看这个列表。看起来对吗?现在试着把它变成一个数组:

np.array(filtedSignal)

这样的列表追加是增量构建数组的最佳方式。它比任何类型的数组连接都更快、更简单。请记住,列表追加返回None。远离只会让人迷惑的np.append

【讨论】:

    猜你喜欢
    • 2018-10-04
    • 1970-01-01
    • 2014-05-08
    • 2018-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-26
    • 2020-06-29
    相关资源
    最近更新 更多