【发布时间】:2018-03-08 12:11:04
【问题描述】:
我正在尝试像这样逐列替换 0 的数组
import numpy as np
a = np.zeros((2,10))
b = np.linspace(1,10,10)
a[1,:] = b
给出正确的输出
a = [[ 0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]]
b = [ 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.]
但是,我尝试插入的数据很复杂,由于某种原因,这种索引形式会删除数据的虚部。例如
a = np.zeros((2,10))
b = np.linspace(1,10,10) * 1j #now b is imaginary
a[1,:] = b
返回以下内容
a = [[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]]
b = [0. +1.j 0. +2.j 0. +3.j 0. +4.j 0. +5.j 0. +6.j 0. +7.j 0. +8.j 0. +9.j
0.+10.j]
这显然是不正确的。有没有办法避免这种情况并保持数据复杂?谢谢
【问题讨论】:
标签: python arrays numpy indexing