[英]how to create a numpy matrix of 8*8
我正在尝试制作一个 8*8 的矩阵,所以我使用了这个:
s=np.indices((8,8))
output:
array([[[0, 0, 0, 0, 0, 0, 0, 0],
[1, 1, 1, 1, 1, 1, 1, 1],
[2, 2, 2, 2, 2, 2, 2, 2],
[3, 3, 3, 3, 3, 3, 3, 3],
[4, 4, 4, 4, 4, 4, 4, 4],
[5, 5, 5, 5, 5, 5, 5, 5],
[6, 6, 6, 6, 6, 6, 6, 6],
[7, 7, 7, 7, 7, 7, 7, 7]],
[[0, 1, 2, 3, 4, 5, 6, 7],
[0, 1, 2, 3, 4, 5, 6, 7],
[0, 1, 2, 3, 4, 5, 6, 7],
[0, 1, 2, 3, 4, 5, 6, 7],
[0, 1, 2, 3, 4, 5, 6, 7],
[0, 1, 2, 3, 4, 5, 6, 7],
[0, 1, 2, 3, 4, 5, 6, 7],
[0, 1, 2, 3, 4, 5, 6, 7]]])
但是,我只想要一个看起来像第一个矩阵的单个矩阵。
很多方法可以做到这一点:
np.indices()
结果的第一个元素np.indices((8,8))[0]
np.arange()
的结果np.tile(np.arange(8), (8, 1)).T
np.zeros((8, 8)) + np.arange(8)[:, None]
# or
(np.zeros((8, 8)) + np.arange(8)).T
np.arange(8)[:, None] * np.ones((1, 8))
# or
(np.ones((8, 1)) * np.arange(8)).T
所有这些都给出相同的结果(除了dtype
——前两个返回int
arrays,rest 返回float
arrays,但无论如何更改类型都很容易)
array([[0., 0., 0., 0., 0., 0., 0., 0.],
[1., 1., 1., 1., 1., 1., 1., 1.],
[2., 2., 2., 2., 2., 2., 2., 2.],
[3., 3., 3., 3., 3., 3., 3., 3.],
[4., 4., 4., 4., 4., 4., 4., 4.],
[5., 5., 5., 5., 5., 5., 5., 5.],
[6., 6., 6., 6., 6., 6., 6., 6.],
[7., 7., 7., 7., 7., 7., 7., 7.]])
找出最有效的方法留给读者作为练习。
尝试这样的事情?
import numpy as np
zeors_array = np.zeros( (8, 8) )
print(zeors_array)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.