回答編集履歴

5

追記

2018/11/18 02:50

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -79,3 +79,7 @@
79
79
  [ 0., 2., 1000.]])
80
80
 
81
81
  ```
82
+
83
+
84
+
85
+ 最後の方法以外はin-placeで処理するので、もとのaを残して別途bを作りたければ配列のコピー操作をする必要があります。

4

追記

2018/11/18 02:50

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -15,6 +15,16 @@
15
15
  ```python
16
16
 
17
17
  a[np.eye(3, dtype=bool)] = 1000
18
+
19
+ ```
20
+
21
+
22
+
23
+ あるいはこんな。
24
+
25
+ ```python
26
+
27
+ a + 1000*np.eye(3)
18
28
 
19
29
  ```
20
30
 
@@ -58,4 +68,14 @@
58
68
 
59
69
  [ 0, 2, 1000]])
60
70
 
71
+ >>> a = np.array([[0,1,0],[1,0,2],[0,2,0]])
72
+
73
+ >>> a + 1000*np.eye(3)
74
+
75
+ array([[1000., 1., 0.],
76
+
77
+ [ 1., 1000., 2.],
78
+
79
+ [ 0., 2., 1000.]])
80
+
61
81
  ```

3

追記

2018/11/18 02:36

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -20,7 +20,11 @@
20
20
 
21
21
 
22
22
 
23
+ 実行例
24
+
23
25
  ```python
26
+
27
+ >>> import numpy as np
24
28
 
25
29
  >>> a = np.array([[0,1,0],[1,0,2],[0,2,0]])
26
30
 

2

追記

2018/11/18 02:34

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -17,3 +17,41 @@
17
17
  a[np.eye(3, dtype=bool)] = 1000
18
18
 
19
19
  ```
20
+
21
+
22
+
23
+ ```python
24
+
25
+ >>> a = np.array([[0,1,0],[1,0,2],[0,2,0]])
26
+
27
+ >>> a
28
+
29
+ array([[0, 1, 0],
30
+
31
+ [1, 0, 2],
32
+
33
+ [0, 2, 0]])
34
+
35
+ >>> a[0,0] = a[1,1] = a[2,2] = 1000
36
+
37
+ >>> a
38
+
39
+ array([[1000, 1, 0],
40
+
41
+ [ 1, 1000, 2],
42
+
43
+ [ 0, 2, 1000]])
44
+
45
+ >>> a = np.array([[0,1,0],[1,0,2],[0,2,0]])
46
+
47
+ >>> a[np.eye(3, dtype=bool)] = 1000
48
+
49
+ >>> a
50
+
51
+ array([[1000, 1, 0],
52
+
53
+ [ 1, 1000, 2],
54
+
55
+ [ 0, 2, 1000]])
56
+
57
+ ```

1

追記

2018/11/18 02:34

投稿

hayataka2049
hayataka2049

スコア30933

test CHANGED
@@ -5,3 +5,15 @@
5
5
  a[0,0] = a[1,1] = a[2,2] = 1000
6
6
 
7
7
  ```
8
+
9
+
10
+
11
+ ちょっと凝ってみると、こうした方がスマートかもしれません。
12
+
13
+
14
+
15
+ ```python
16
+
17
+ a[np.eye(3, dtype=bool)] = 1000
18
+
19
+ ```