python - 4x4 矩阵,对角线为 1(如十字),其他地方为 0,使用 python
问题描述
我能够得到棋盘格图案、+ 图案和边框上带有 1 的图案,但我无法弄清楚这一点。有人可以帮忙吗?
解决方案
如果您坚持使用整个尺寸,那么正如@Péter Leéh指出的那样:
>>> np.eye(n) + np.fliplr(np.eye(n))
array([[1., 0., 0., 1.],
[0., 1., 1., 0.],
[0., 1., 1., 0.],
[1., 0., 0., 1.]])
就足够了,np.fliplr(x)
(水平翻转)与np.flip(x, axis=1)
.
但是,如果n
是奇数,则必须将中心元素替换为1
. 例如 n=5
:
>>> x = np.eye(n) + np.fliplr(np.eye(n))
>>> x[n//2, n//2] = 1
array([[1., 0., 0., 0., 1.],
[0., 1., 0., 1., 0.],
[0., 0., 1., 0., 0.],
[0., 1., 0., 1., 0.],
[1., 0., 0., 0., 1.]])
推荐阅读
- sql - 在 MS ACCESS 替换表中搜索所有相关号码的最简单方法是什么?描述中更好的解释
- typescript - 如何在非静态方法中获取静态属性 - 打字稿
- go - 为什么我的“完成”频道随机关闭?
- windows - Windows 证书交互式登录
- android - 有没有办法在 react-native 应用程序上显示 CPU 和内存使用情况?
- laravel - 将经过身份验证的用户添加到相关模型的最佳方法是什么?
- java - 为什么 getWidth 函数在 JAVA 中返回更多的值?
- angular7 - 如何在 angular7 的 html 模板中实现订阅
- oracle - Oracle 应用程序性能问题
- java - 搜索时忽略空格 - RESTHighLevelClient Java