python - 计算 numpy.ndarray 内的度数

标签 python numpy

我有以下表面

import numpy as np


surface = np.zeros((10, 10))
surface[5, 5] = 1

看起来如下:

 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 1. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

我想计算 x 和 y 方向的度数。因此,x 方向所需的输出应该是

 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 45 0 -45 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

我尝试了以下方法:

grad_y, grad_x = np.gradient(surface)
degrees_x = np.degrees(np.arctan(grad_x))

然而,这结果n

 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 26.560505 0 -26.560505 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
 [0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]

如何获得所需的输出?

最佳答案

gradient 返回 0.5 和 -0.5,它们是导数,也称为斜率。因此,请使用 grad_x * 90 来获取学位。

关于python - 计算 numpy.ndarray 内的度数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73350104/

相关文章:

performance - pandas dataframe 像 groupby 一样过滤行

python - 在突变中传递链接数组 [graphene/python/graphql]

python - 解释(和比较)numpy.correlate 的输出

python - Python 中的 list(array) 和 array.tolist() 之间有什么区别吗?

python - 谷歌历史价格到 Pandas 数据框

python - python 使用分隔符连接字符矩阵

python - 如何在 numpy 中组合 2 个 numpy.ndarray

python - 用python测量图片中物体之间的距离

python - 在 Windows 中的 python 3.7 上安装 django 时出现代理错误

python - 可用作 TFTP 服务器的 Python 模块