Python-为什么创建的数组为空?

Python-为什么创建的数组为空?,python,numpy-ndarray,Python,Numpy Ndarray,以下是我的一个MWE(最小工作示例): import numpy as np errors = np.array([]) for i in range(7): np.append(errors, i) print(errors) 不幸的是,Jupyter笔记本的输出只是一个空数组,但为什么?要直接回答您的问题,“为什么创建的数组是空的”,很简单:您创建了一个空数组 errors=np.array([])#此数组为空! 从文件中: numpy.append(arr,value,ax

以下是我的一个MWE(最小工作示例):

import numpy as np

errors = np.array([])
for i in range(7):
    np.append(errors, i)
print(errors)

不幸的是,Jupyter笔记本的输出只是一个空数组,但为什么?

要直接回答您的问题,“为什么创建的数组是空的”,很简单:您创建了一个空数组

errors=np.array([])#此数组为空!
从文件中:

numpy.append(arr,value,axis=None)

返回:append:ndarray带有附加到axis的值的arr副本。 请注意,追加不会在适当的位置发生:将分配一个新数组并 填满了

您的数组
errors
只分配了一次,您需要将附加的数组重新分配给
errors
以获得预期的结果,否则它将保持为空

errors=np.append(errors,i)

要直接回答您的问题,“为什么创建的数组是空的”,很简单:您创建了一个空数组

errors=np.array([])#此数组为空!
从文件中:

numpy.append(arr,value,axis=None)

返回:append:ndarray带有附加到axis的值的arr副本。 请注意,追加不会在适当的位置发生:将分配一个新数组并 填满了

您的数组
errors
只分配了一次,您需要将附加的数组重新分配给
errors
以获得预期的结果,否则它将保持为空

errors=np.append(errors,i)
因为numpy.append()不起作用,即旧对象未被覆盖。试试这个:

import numpy as np

errors = np.array([])
for i in range(7):
    errors = np.append(errors, i)
print(errors)
对于您的情况,我建议使用一个简单的列表:

errors = []
for i in range(7):
    errors +=[i]
print(errors)
因为numpy.append()不能正常工作,即旧对象不会被覆盖。试试这个:

import numpy as np

errors = np.array([])
for i in range(7):
    errors = np.append(errors, i)
print(errors)
对于您的情况,我建议使用一个简单的列表:

errors = []
for i in range(7):
    errors +=[i]
print(errors)

不要在循环中使用
numpy.append
——即使您修复了错误,在循环中使用
numpy.append
也会因为不必要的二次复制而严重低效。
name错误:未定义名称“np”
。这不是MWE。什么是np?numpy?和“什么是np?”-这个例子运行吗?是否缺少包含?不要在循环中使用
numpy.append
——即使您修复了错误,在循环中使用
numpy.append
也会由于不必要的二次复制而严重低效。
name错误:未定义名称“np”
。这不是MWE。什么是np?numpy?和“什么是np?”-这个例子运行吗?是否缺少一个包含?