質問編集履歴

3

細かな修正

2021/12/15 11:39

投稿

sk1210
sk1210

スコア0

test CHANGED
File without changes
test CHANGED
@@ -122,7 +122,7 @@
122
122
 
123
123
  ```
124
124
 
125
- 本当は、matrix1は以下のようになってほしいです。(matrix2で0が入っている箇所に対応するところを取ってきて、そのうち(0-indexで)3,6,9番目要素にそれぞれ2,4,6を代入する)
125
+ 本当は、matrix1は以下のようになってほしいです。(matrix2で0が入っている箇所に対応するところを取ってきて1次元リストを作ったとき、そのリストの(0-indexで)3,6,9番目に対応する要素にそれぞれ2,4,6を代入する)
126
126
 
127
127
  ```
128
128
 

2

例の修正、理想の出力と実際の出力を追記

2021/12/15 11:39

投稿

sk1210
sk1210

スコア0

test CHANGED
File without changes
test CHANGED
@@ -6,7 +6,7 @@
6
6
 
7
7
  ##### 前提
8
8
 
9
- まず以下のようなmatrix1, matrix2, list1を準備します。
9
+ まず以下のようなmatrix1, matrix2, list1, list2を準備します。
10
10
 
11
11
  ```
12
12
 
@@ -24,9 +24,9 @@
24
24
 
25
25
 
26
26
 
27
- >>> list1 = np.array([1,4,6])
27
+ >>> list1 = np.array([3,6,9])
28
28
 
29
- >>> list2 = np.array([2,5,7])
29
+ >>> list2 = np.array([2,4,6])
30
30
 
31
31
  ```
32
32
 
@@ -66,7 +66,13 @@
66
66
 
67
67
  >>> list1
68
68
 
69
+ array([3, 6, 9])
70
+
71
+
72
+
73
+ >>> list2
74
+
69
- array([1, 4, 6])
75
+ array([2, 4, 6])
70
76
 
71
77
  ```
72
78
 
@@ -74,7 +80,7 @@
74
80
 
75
81
  ##### やりたいこと
76
82
 
77
- matrix1の要素にlist2で指定した数字(2,5,7)を1か所ずつ代入したいです。この時に、代入する場所は、
83
+ matrix1の要素にlist2で指定した数字(2,4,6)を1か所ずつ代入したいです。この時に、代入する場所は、
78
84
 
79
85
  ```
80
86
 
@@ -86,7 +92,7 @@
86
92
 
87
93
 
88
94
 
89
- ##### 問題
95
+ ##### 起こっている問題
90
96
 
91
97
  上記の内容を以下のように実装し、代入操作を行っても、値が変化しません。
92
98
 
@@ -102,20 +108,56 @@
102
108
 
103
109
  >>> list2
104
110
 
105
- array([2, 5, 7])
111
+ array([2, 4, 6])
106
112
 
107
113
 
108
114
 
109
- >>> matrix1[matrix2==0][list1] = list2 # 代入をするけど、、、
115
+ >>> matrix1[matrix2==0][list1] = list2 # 代入をするけど・・・
110
116
 
111
117
 
112
118
 
113
119
  >>> matrix1[matrix2==0][list1]
114
120
 
115
- array([0., 0., 0.]) # 変化しない。(本来は array([2., 5., 7.])となってほしい)
121
+ array([0., 0., 0.]) # 変化しない。(本来は array([2., 4., 6.])となってほしい)
122
+
123
+ ```
124
+
125
+ 本当は、matrix1は以下のようになってほしいです。(matrix2で0が入っている箇所に対応するところを取ってきて、そのうち(0-indexで)3,6,9番目の要素にそれぞれ2,4,6を代入する)
126
+
127
+ ```
128
+
129
+ >>> matrix1 # 理想の出力
130
+
131
+ array([[0., 0., 0., 2., 0.],
132
+
133
+ [0., 4., 0., 0., 0.],
134
+
135
+ [0., 0., 0., 0., 0.],
136
+
137
+ [6., 0., 0., 0., 0.],
138
+
139
+ [0., 0., 0., 0., 0.]])
140
+
141
+
142
+
143
+ >>> matrix1 # 実際の出力
144
+
145
+ array([[0., 0., 0., 0., 0.],
146
+
147
+ [0., 0., 0., 0., 0.],
148
+
149
+ [0., 0., 0., 0., 0.],
150
+
151
+ [0., 0., 0., 0., 0.],
152
+
153
+ [0., 0., 0., 0., 0.]])
116
154
 
117
155
  ```
118
156
 
119
157
 
120
158
 
159
+
160
+
161
+
162
+
121
163
  なぜうまく代入されないのか、どうしたらうまく代入されるのかについて、どちらかでもわかる方いらっしゃったら教えてほしいです。

1

タイトルを修正

2021/12/15 11:38

投稿

sk1210
sk1210

スコア0

test CHANGED
@@ -1 +1 @@
1
- ブールインデックス参照+ファンシーインデックスによる代入ができない
1
+ numpy ブールインデックス参照+ファンシーインデックスによる代入ができない
test CHANGED
File without changes