11

如何使用 numpy创建单位矩阵?有没有比这更简单的语法

numpy.matrix(numpy.identity(n))
4

3 回答 3

16

这是一个更简单的语法:

np.matlib.identity(n)

这是一个运行得更快的更简单的语法:

In [1]: n = 1000
In [2]: timeit np.matlib.identity(n)
100 loops, best of 3: 8.78 ms per loop
In [3]: timeit np.matlib.eye(n)
1000 loops, best of 3: 695 us per loop
于 2012-06-09T03:30:15.677 回答
11

np.eye可用于创建一个身份数组 (In)。

例如,

>>> np.eye(2, dtype=int)
array([[1, 0],
       [0, 1]])
>>> np.eye(3, k=1)
array([[ 0.,  1.,  0.],
       [ 0.,  0.,  1.],
       [ 0.,  0.,  0.]])
于 2015-08-01T08:22:40.837 回答
5

我认为没有更简单的解决方案。但是,您可以更有效地做到这一点:

numpy.matrix(numpy.identity(n), copy=False)

这避免了不必要的数据复制。

于 2012-06-07T16:13:28.093 回答