1
A
回答
2
range(n)
產生從0
包容n
獨家列表:
In [847]: range(3)
Out[847]: [0, 1, 2]
和numpy的花哨索引需要在指數X
S和Y
S中的元素,並分配一個新的價值對他們說:
In [856]: d
Out[856]:
array([[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.],
[ 0., 0., 0., 0., 0.]])
In [857]: d[range(5), range(5)]=2 #assigns elems on diagonal d[0,0], d[1,1], d[2,2], etc.
...: print d
[[ 2. 0. 0. 0. 0.]
[ 0. 2. 0. 0. 0.]
[ 0. 0. 2. 0. 0.]
[ 0. 0. 0. 2. 0.]
[ 0. 0. 0. 0. 2.]]
注意必有的X
S和Y
S中相同的數字在這種情況下
如果你想修改block
(未對角線這段時間),使用廣播:
In [878]: arange(3)[:, None] #get a 2D array of shape (3, 1)
Out[878]:
array([[0],
[1],
[2]])
In [874]: d[arange(3)[:, None], arange(2)] #get the sub array of row 0~2, col 0~1
Out[874]:
array([[ 2., 0.],
[ 0., 2.],
[ 0., 0.]])
In [875]: d[arange(3)[:, None], arange(2)]=100 #assign new values element-wise
In [876]: d
Out[876]:
array([[ 100., 100., 0., 0., 0.],
[ 100., 100., 0., 0., 0.],
[ 100., 100., 2., 0., 0.],
[ 0., 0., 0., 2., 0.],
[ 0., 0., 0., 0., 2.]])
2
您的代碼將設置主對角線爲零:
import numpy as np
n = 5
lena_image = np.ones(shape=(n, n))
lena_image[range(n), range(n)] = 0
print lena_image
輸出:
[[ 0. 1. 1. 1. 1.]
[ 1. 0. 1. 1. 1.]
[ 1. 1. 0. 1. 1.]
[ 1. 1. 1. 0. 1.]
[ 1. 1. 1. 1. 0.]]
相關問題
- 1. 使用索引範圍搜索ascii
- 2. 使用的索引範圍,其中
- 3. 確實具有範圍使用索引
- 4. 索引超出範圍(範圍可變)
- 5. Marklogic屬性範圍索引範圍
- 6. deleteCharactersInRange:範圍或索引超出範圍'
- 7. NSString範圍或索引超出範圍
- 8. 使用numpy.take更快的花式索引
- 9. python列表索引超出範圍使用模式庫
- 10. Python:索引超出範圍
- 11. Gridview:索引超出範圍
- 12. QList索引超出範圍
- 13. #list索引超出範圍
- 14. 索引1超出範圍
- 15. 索引超出範圍?
- 16. IndexError:索引超出範圍
- 17. 索引超出範圍powershell
- 18. ArgumentOutOfRangeException:索引超出範圍
- 19. C# - 索引超出範圍
- 20. 索引超出範圍,Python?
- 21. Postgresql索引範圍類型
- 22. 索引超出範圍
- 23. ArgumentOutOfRangeException:索引超出範圍
- 24. System.IndexOutOfRangeException:索引超出範圍
- 25. MySQL索引的範圍
- 26. 範圍索引分貝
- 27. C++:索引超出範圍
- 28. Xamarin.Forms.NavigationProxy.PopAsync:System.ArgumentOutOfRangeException:索引超出範圍
- 29. 索引超出範圍/ IndexError
- 30. Datagrid,索引超出範圍
http://docs.scipy.org/doc/numpy/reference/arrays.indexing.html –
如果'xmax!= ymax'這個表達式會引發一個錯誤。 –