質問編集履歴

1

誤字

2021/11/03 12:48

投稿

SomeoneHello
SomeoneHello

スコア5

test CHANGED
File without changes
test CHANGED
@@ -40,19 +40,21 @@
40
40
 
41
41
  b = a.copy()
42
42
 
43
- # リストのコピーメソッド
44
-
45
43
 
46
44
 
47
45
  ```
48
46
 
49
- このようにできと知っていたのですが、この対策はNumPyの配列でも通用しますか?
47
+ このような方法があるのですが、この対策はNumPyの配列でも通用しますか?
50
48
 
51
49
 
52
50
 
53
51
  **質問3**
54
52
 
55
53
  ```python
54
+
55
+   spectrogram = np.zeros((num_frames, int(fft_size/2)+1))
56
+
57
+
56
58
 
57
59
  for frame_idx in range(num_frames):
58
60
 
@@ -66,7 +68,7 @@
66
68
 
67
69
  frame = waveform[start_index : \
68
70
 
69
- start_index + frame_size].copy()
71
+ start_index + frame_size].copy()#------------------------1
70
72
 
71
73
 
72
74
 
@@ -104,10 +106,48 @@
104
106
 
105
107
  # 数字のところをコロンにするとその軸全部とってくる
106
108
 
107
- spectrogram[frame_idx, :] = log_absolute
109
+ spectrogram[frame_idx, :] = log_absolute#---------------------------------2
110
+
111
+ ```
112
+
113
+ 1では
114
+
115
+ frame = waveform[start_index : start_index + frame_size].copy() と書かれており、配列をちゃんとコピーしている。
108
116
 
109
117
 
110
118
 
119
+ 一方で、2では
120
+
121
+ spectrogram[frame_idx, :] = log_absolute と書かれており、log_absoluteが配列であるにもかかわらずそのまま代入している。
122
+
123
+ これでは、for文で繰り返す中で、1つ前の繰り返しによって代入されたspectrogramの行が、今の繰り返しの代入によって同じ値になってしまわないのでしょうか?
124
+
125
+ 繰り返し1回目:
126
+
127
+ (1,2,3,4) ←代入された
111
128
 
112
129
 
130
+
113
- ```
131
+ 繰り返し2回目:
132
+
133
+ (5,6,7,8) ←ここも同時に書き換えられないのか?
134
+
135
+ (5,6,7,8) ←代入された
136
+
137
+
138
+
139
+ 繰り返し3回目:
140
+
141
+ (1,3,5,7) ←ここも同時に書き換えられないのか?
142
+
143
+ (1,3,5,7) ←ここも同時に書き換えられないのか?
144
+
145
+ (1,3,5,7) ←代入された
146
+
147
+
148
+
149
+ .
150
+
151
+ .
152
+
153
+ .