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

复数从负数组的平方根[重复]

彭阳荣
2023-03-14

我是一个从Matlab到python的新转换者,我正在努力生成一个复杂的数组

在matlab中,我有以下代码:

  xyAxis = linspace(-127,127,255);
  [x,y] = meshgrid(xyAxis, xyAxis);
  fz = -(x.^2 + y.^2);
  ifz = sqrt(fz);

我试图在python 3中复制:

  import numpy as np
  xyAxis = np.intp( np.linspace(-127, 127, 255) )
  x, y = np.meshgrid(xyAxis,xyAxis)
  fz =  - (x**2 + y**2)
  ifz = np.sqrt(fz)

但是,我得到以下错误:

  RuntimeWarning: invalid value encountered in sqrt

我做了一点谷歌,我不知道如何模仿matlab的行为在这种情况下?有什么建议吗?

共有2个答案

法和硕
2023-03-14

与@PaulPanzer建议不同的另一种方法-

import numpy as np
xyAxis = np.intp( np.linspace(-127, 127, 255) )
x, y = np.meshgrid(xyAxis,xyAxis)
fz =  - (x**2 + y**2)

from numpy.lib.scimath import sqrt as csqrt
ifz = csqrt(fz)

print ifz

这直接来自麻木的文档

输出

[[ 0.+179.60512242j  0.+178.89941308j  0.+178.19652073j ...,
   0.+178.19652073j  0.+178.89941308j  0.+179.60512242j]
 [ 0.+178.89941308j  0.+178.19090886j  0.+177.48521065j ...,
   0.+177.48521065j  0.+178.19090886j  0.+178.89941308j]
 [ 0.+178.19652073j  0.+177.48521065j  0.+176.7766953j  ...,
   0.+176.7766953j   0.+177.48521065j  0.+178.19652073j]
 ..., 
 [ 0.+178.19652073j  0.+177.48521065j  0.+176.7766953j  ...,
   0.+176.7766953j   0.+177.48521065j  0.+178.19652073j]
 [ 0.+178.89941308j  0.+178.19090886j  0.+177.48521065j ...,
   0.+177.48521065j  0.+178.19090886j  0.+178.89941308j]
 [ 0.+179.60512242j  0.+178.89941308j  0.+178.19652073j ...,
   0.+178.19652073j  0.+178.89941308j  0.+179.60512242j]]
干亮
2023-03-14

一种方法是将fz转换为复杂的dtype

ifz = np.sqrt(fz.astype(np.complex))
 类似资料:
  • 我做了一个基于距离公式的程序,但我不知道如何显示平方根请帮助Python 3代码:

  • 我对递归是新手。我可以将数组展平并以普通数组的形式返回,但如果我想将数组展平并将其存储在对象中并返回值,由于某种原因,我会丢失前面结果的值,如果你能帮助我,那就太好了。PS:我可以通过每次迭代发送结果作为参数来做到这一点,但我想这样做,所以… 我甚至尝试了下面的方法,我知道我犯了一些错误,只是我找不到确切的位置 或

  • 我收藏了这样的文件: 我想找到所有的有效载荷。_id,其状态为真/假。预期结果是 到目前为止,我有这样的东西。 不确定如何为数组中的元素添加条件。

  • 我想找出一个整数部分的一个平方根的数字在python与pylab扩展然而,long(sqrt(n))不适用于大整数。有没有什么方法可以非常快地找到一个非常大的数的平方根的整数部分?我是新的Python和编程。我所知道的是当循环和如果语句。谢谢你们

  • 以下是例外的结果: null

  • 在JavaScript中,我生成了一个x个数组,所有数组由57个数字组成。我想计算数组中每个数字的平均值,作为一个数组的平均值,即: array1[0]array2[0]array3[0]…./阵列数=[0]的平均值 array1[1]阵列2[1]阵列3[1]…./阵列数=[1]的平均值 数组一数组二数组三数组二..../数组数量=平均值[2] 这是生成的数组数组的示例: 谁能给我一个例子,让我可