回答編集履歴
1
追記
answer
CHANGED
@@ -2,4 +2,41 @@
|
|
2
2
|
|
3
3
|
numbaは添字アクセスによる計算などnumba向きの処理を記述すると高速になるというもので、普通に書いたpythonコードにはまず効きません。numbaを使うことを前提にぜんぶ組み替えないといけませんし、効率的に最適化するのであればボトルネックを見つけてそこを実装するような形になります。
|
4
4
|
|
5
|
-
また、pandasのデータフレームから要素を出し入れしたりする処理は、だいたいどうやっても遅くなります。データフレームを使わないで書くだけでもたぶん数倍くらいは速くなるでしょう。
|
5
|
+
また、pandasのデータフレームから要素を出し入れしたりする処理は、だいたいどうやっても遅くなります。データフレームを使わないで書くだけでもたぶん数倍くらいは速くなるでしょう。
|
6
|
+
|
7
|
+
# 追記
|
8
|
+
愚直にやって0.1秒を切る程度なのですが、これで「遅い」ですか?
|
9
|
+
|
10
|
+
```python
|
11
|
+
A_data=['tomato','lettuce','carrot']
|
12
|
+
B_data=['apple','banana','orange']
|
13
|
+
C_data=['milk','coffee','beer']
|
14
|
+
|
15
|
+
B=[1,2,3]
|
16
|
+
C=[3,4,7]
|
17
|
+
|
18
|
+
A_2=[100,200,300]
|
19
|
+
B_2=[10,30,50]
|
20
|
+
C_2=[200,500,300]
|
21
|
+
|
22
|
+
quantities = []
|
23
|
+
for b in B:
|
24
|
+
for c in C:
|
25
|
+
quantities.append([15 - b - c, b, c])
|
26
|
+
|
27
|
+
idx = []
|
28
|
+
for i in range(3):
|
29
|
+
for j in range(3):
|
30
|
+
for k in range(3):
|
31
|
+
idx.append([i, j, k])
|
32
|
+
|
33
|
+
|
34
|
+
result = []
|
35
|
+
for ai, bi, ci in idx:
|
36
|
+
for aq, bq, cq in quantities:
|
37
|
+
result.append(((A_data[ai], B_data[bi], C_data[ci]),
|
38
|
+
(aq, bq, cq),
|
39
|
+
A_2[ai] * aq + B_2[bi] * bq + C_2[ci] * cq))
|
40
|
+
print(result)
|
41
|
+
|
42
|
+
```
|