scipy 与以下代码段相关的问题,初始化空列表并append [duplicate]

7eumitmz  于 2022-11-10  发布在  其他
关注(0)|答案(2)|浏览(112)

此问题在此处已有答案

Why does "x = x.append(...)" not work in a for loop?(8个答案)
四年前就关门了。
我写了一个程序,包括下面的函数,它涉及初始化一个空列表,并在迭代过程中追加它。

def build_window_sequence(x,y,windowsize):
    num_sequence = x.shape[0]
    num_size = x.shape[1]
    x_window_sequence = []
    y_window = []
    for i in range(num_sequence):
        low_index = 0
        high_index = 0
        for j in range(num_size):
            low_index = j
            high_index = low_index+windowsize-1
            current_index = low_index+round(windowsize/2)
            x_window_sequence = x_window_sequence.append(train_x[i,low_index:high_index])
            y_window = y_window.append('train_y[current_index]')
    return x_window, y_window

但是,运行该程序会出现以下错误消息

x_window_sequence = x_window_sequence.append('train_x[i,low_index:high_index]')
AttributeError: 'NoneType' object has no attribute 'append'

有关详细信息,请参阅所涉及的数组具有以下形状

train_x shape (5000, 501)
train_y shape  (5000, 501)
6ioyuze2

6ioyuze21#

list.append是返回None的 * 就地 * 操作。
因此,您应该附加而不指派回变数:

x_window_sequence.append(train_x[i,low_index:high_index])
y_window.append('train_y[current_index]')

这在Python文档中有明确说明。

1tu0hz3e

1tu0hz3e2#

x_window_sequence = x_window_sequence.append(train_x[i,low_index:high_index])

在这里,您将对.append的结果赋值,但是.append没有返回任何值(也就是说,它返回None)。

相关问题