python - 使用 Numpy.eye 创建一个二维数组,其中包含自定义值 0 和自定义对角线
问题描述
简而言之,我正在尝试使用 np.eye 创建一个二维数组,其中 0 和对角线具有自定义值。
我想对角线,如果我这样做
a=np.eye(4) b=1.8*a
对角线变为 1.8 但更改 0 对我来说仍然是个谜。先感谢您!
解决方案
因为您想要一些其他值而不是0(对角线之外),所以您不能将函数基于eye,而是基于full,然后使用diag_indices将对角线元素设置为您的自定义值。
因此,将您的功能定义为:
def customEye(N : int, diagVal : float, otherVal : float):
a = np.full((N, N), otherVal)
a[np.diag_indices(N)] = diagVal
return a
然后,当你调用arr = customEye(4, 1.8, 0.5)
结果是:
array([[1.8, 0.5, 0.5, 0.5],
[0.5, 1.8, 0.5, 0.5],
[0.5, 0.5, 1.8, 0.5],
[0.5, 0.5, 0.5, 1.8]])
推荐阅读
- python - 如何修复“UnboundLocalError:分配前引用的局部变量‘books’”?
- excel - Excel VBA:如何选择受选择影响的特定行
- java - Reactor:扩展一个 ParallelFlux
- angular - ngClass 没有在角度数据表中应用?
- python - 如何使用 python 将 3D vtk 渲染场景导出到 paraview?
- android - CircleCI ./gradlew 测试命令失败
- java - 如何从xslt中的excel表中获取键的对应值
- c# - 用于比较的订单日期列表
- javascript - 重新加载页面时保持引导侧边栏的状态
- javascript - 使用传单 maxbounds 设置边界但不起作用