【问题标题】:Python - Replacing column by indexing removes imaginary componentsPython - 通过索引替换列会删除虚构的组件
【发布时间】: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


    【解决方案1】:

    我刚刚意识到这是由于零矩阵是一种不同类型的数据,并且通过使用来修复

    a = np.zeros((2,2),dtype = np.complex)
    

    如果其他人有同样的问题,供参考

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-25
      • 2019-08-24
      • 1970-01-01
      • 2017-03-31
      • 2016-03-25
      • 1970-01-01
      • 1970-01-01
      • 2021-04-30
      相关资源
      最近更新 更多