当前位置: 首页 > 知识库问答 >
问题:

为什么数组的数据类型不能在循环中更改?

甄阳朔
2023-03-14

我有一个包含复杂条目的数组列表的结构,我想将它们转换为浮点数。虚部可以丢弃,这很好。

import numpy as np

a=np.array([2+3j,3+4j])
b=np.array([1+2j,4+3j])
arrays=[a,b]

for i,y in enumerate(arrays):
    y=y.astype('float64')

print(arrays)

我想知道,为什么这不起作用,而另一方面,在创建列表“数组”之前将类型更改为float会起作用。

import numpy as np

a=np.array([2+3j,3+4j])
b=np.array([1+2j,4+3j])
a=a.astype('float64')
b=b.astype('float64')
arrays=[a,b]
print(arrays)

这是一个非常基本的问题,但如果有人能分享他或她的想法,我将非常高兴。

感谢提前:)

共有1个答案

龙永逸
2023-03-14

我在想,为什么这行不通...

创建一个新对象。循环中的指定将新对象指定给名称y。由于赋值不再指向数组项,因此数组项不会更改。

如果您在循环中执行修改项目的操作,它会像您预期的那样工作。...

for i,y in enumerate(arrays):
    np.add(y,4,out=y)

而enumerate(arrays)中的i,y的行为将与问题中的示例类似:y=y 4。

 类似资料:
  • 我正在迭代Java 7循环和Java 8 循环中的列表。Java 8 循环希望其中的变量不会更改。例如: 有人能解释一下为什么吗?是Java 8的弊端吗?

  • 问题内容: 声明任何原始类型的数据(例如int或)时,它们会初始化为或。为什么我们不能将它们设置为? 问题答案: 基本类型就是数据。另一方面,我们称为对象的对象只是指向数据存储位置的指针。例如: 在这种情况下,它只是指向一个整数对象的指针,该对象的值恰好是3。也就是说,在存储变量对象的内存位置,你所拥有的只是对数据实际位置的引用。number另一方面,存储的存储位置直接包含值3。 因此,你可以将设

  • 当声明任何基本类型数据(如< code>int或< code>double)时,它们被初始化为< code>0或< code>0.0。为什么我们不能将它们设置为< code>null?

  • 目前,我正在尝试在这里实现汽车示例的变体: https://www.elastic.co/blog/managing-relations-inside-elasticsearch 如果我运行: 代码工作正常。 但是如果我删除索引并将2015从字符串更改为数字: 我收到以下错误消息: {“error”:{“root\u-cause”:[{“type”:“非法\u-argument\u-excepti

  • 所以,实际上我对Java编程语言还是新手,并且还在学习如何转换数据类型,所以在这种情况下,我很难将字节转换为短字节。你们能帮帮我吗?? 所以在这种情况下,我可以正常地从(int)转换为(long)数据类型,因为(long)数据大小大于(int)。这与我尝试将其从(short)转换为(int)时的情况相同。但为什么我不能使用这个概念将数据类型从(byte)转换为(short)??即使(短)数据大小大

  • 我在php中工作,现在我正在将时循环应用于我的代码。我正在从数据库中获取数据。现在我必须将该数据应用于页面中的一个Div。 我的问题是"div类="项目活动"在循环中每次活动类都需要。现在我想改变它,就像在第一个循环过程之后,当第二个开始时,我想把那个div改变成这个"div类="项目"。 我对这个循环过程不太熟悉,所以我无法解决这个问题。需要帮助。谢谢