Python-为什么创建的数组为空?
以下是我的一个MWE(最小工作示例):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
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?”-这个例子运行吗?是否缺少一个包含?