作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个 numpy 数组:
import numpy as np
x = np.array((1 + 2j, 2 + 4j, 5 + 10j))
我想创建两个单独的数组,一个是实数部分,另一个是不带 j 的复数部分。在 python 中是否有执行此操作的快捷方式?我能想到的唯一方法是明确地:
xr = np.zero(len(x))
xi = np.zero(len(x))
for n in range(0, len(x)):
xr[m] = x[n].real
xi[m] = x[n].imag
不知道,似乎应该有一种更快的输入方式...
喜欢
xr = x.real?
xi = x.imag?
最佳答案
In [145]: x = np.array((1 + 2j, 2 + 4j, 5 + 10j))
In [146]: x
Out[146]: array([1. +2.j, 2. +4.j, 5.+10.j])
real
和 imag
属性对整个数组和元素都有效:
In [147]: x.real
Out[147]: array([1., 2., 5.])
In [148]: x.imag
Out[148]: array([ 2., 4., 10.])
In [149]: xr, xc = x.real, x.imag
In [150]: xr
Out[150]: array([1., 2., 5.])
In [151]: xc
Out[151]: array([ 2., 4., 10.])
@user3483203 建议的 view
方法告诉它将同一个数据缓冲区解释为两个 float 的序列:
In [156]: x.view('(2,)float')
Out[156]:
array([[ 1., 2.],
[ 2., 4.],
[ 5., 10.]])
In [157]: np.dtype('(2,)float')
Out[157]: dtype(('<f8', (2,)))
除非您已经使用过结构化数组和复合数据类型,否则这种表示法可能会很晦涩。
关于python - 将 "complex array"拆分为 "real"和 "imaginary"数组的快捷方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55765443/
我是一名优秀的程序员,十分优秀!