如何用numpy 创建一个单位矩阵?是否有比语法更简单的语法
numpy.matrix(numpy.identity(n))
Run Code Online (Sandbox Code Playgroud)
kwg*_*man 13
这是一个更简单的语法:
np.matlib.identity(n)
Run Code Online (Sandbox Code Playgroud)
这是一个更简单的语法,运行速度更快:
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
Run Code Online (Sandbox Code Playgroud)
此外,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.]])
Run Code Online (Sandbox Code Playgroud)
我认为没有更简单的解决方案.但是,您可以稍微提高效率:
numpy.matrix(numpy.identity(n), copy=False)
Run Code Online (Sandbox Code Playgroud)
这避免了不必要地复制数据.
| 归档时间: |
|
| 查看次数: |
28368 次 |
| 最近记录: |