问题描述
我有一个包含复杂条目的数组列表结构,我想将它们转换为浮点数。虚部可以丢掉,没问题。
const Parent = ({}) => {
const context = useSelector(); //context comes from the store.
const [selectedTab,setSelectedTab] = useState(false);
const [content,setContent] = useState(null);
useEffect(() => {
switch (selectedTab) {
case 'components':
setContent(<MyComponent context={context} />);
break;
}
},[selectedTab,context]);
return(<>{content}</>);
};
我想知道为什么这不起作用,而另一方面,在创建列表“数组”之前将类型更改为浮动确实有效。
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)
这是一个非常基本的问题,但如果有人能分享他或她对此的看法,我会很高兴。
提前致谢:)
解决方法
我想知道,为什么这不起作用......
y.astype('float64')
创建一个新对象。循环中的赋值将该新对象赋值给名称y
。由于赋值 y
不再指向数组项,因此数组项未更改。
如果您在循环中执行修改项目就地的操作,它将按您的预期工作。 ...
for i,y in enumerate(arrays):
np.add(y,4,out=y)
而 for i,y in enumerate(arrays): y = y + 4
的行为与您问题中的示例相同。