分配给数组元素的值显示为z

2024-04-23 10:38:29 发布

您现在位置:Python中文网/ 问答频道 /正文

问:为什么我赋予非零值的列表元素变为零?你知道吗

有一个名为eta的列表,其中包含许多不同的值。有了这个列表,我们想建立一个新的列表a,其中每个元素a[i]等于eta[i+1]-eta[i]。可以计算eta[i+1]-eta[i]的值,并且可以检查它是否给了我一个非零值,但是当我做一个for循环并在某个范围内运行它for i时,它会出于某种原因设置a[i] = 0。你知道吗

代码如下:

import numpy as np

a = np.arange(5)
for i in range(5):
    a[i] = eta[i+1]-eta[i]

尝试为每个步骤打印eta[i+1]-eta[i]的值,结果显示为非零数,但如果打印a[i],结果显示为零。Screenshot of code with prints。你知道吗


Tags: 代码inimportnumpy元素列表foras
2条回答

调用时需要指定数据类型np.arange公司()否则它将推断索引应该是int,因为传入的参数是5(int)。你知道吗

像这样的东西会有用的。你知道吗

a = np.arange(5, dtype='float')

在此处阅读有关数据类型的更多信息:https://docs.scipy.org/doc/numpy-1.15.0/reference/generated/numpy.dtype.html#numpy.dtype

问题是arange创建了一个整数数组,因此当您试图给它赋值时,会将它截断为整数。因为您的值都在0和1之间,所以它们被转换为零。你知道吗

相关问题 更多 >