回答編集履歴
10
コメント修正
test
CHANGED
@@ -6,11 +6,7 @@
|
|
6
6
|
|
7
7
|
```
|
8
8
|
|
9
|
-
# csvの操作用にインポート
|
10
|
-
|
11
9
|
import csv
|
12
|
-
|
13
|
-
# csvの数値計算用のライブラリをインポート
|
14
10
|
|
15
11
|
import numpy as np
|
16
12
|
|
@@ -20,7 +16,7 @@
|
|
20
16
|
|
21
17
|
def read_csv():
|
22
18
|
|
23
|
-
"""データ
|
19
|
+
"""データ入力"""
|
24
20
|
|
25
21
|
with open('C:/Users/.spyder-py3/191224~/testdataXYZ.csv') as f:
|
26
22
|
|
@@ -44,7 +40,7 @@
|
|
44
40
|
|
45
41
|
def stat(o, e):
|
46
42
|
|
47
|
-
"""定数項、偏回帰係数
|
43
|
+
"""定数項、偏回帰係数算出"""
|
48
44
|
|
49
45
|
e = np.vstack([np.ones(e.shape[1]), e]) # 定数項, 説明変数
|
50
46
|
|
@@ -56,7 +52,7 @@
|
|
56
52
|
|
57
53
|
def output(a):
|
58
54
|
|
59
|
-
|
55
|
+
"""結果表示"""
|
60
56
|
|
61
57
|
print('算出式')
|
62
58
|
|
@@ -90,7 +86,7 @@
|
|
90
86
|
|
91
87
|
def main():
|
92
88
|
|
93
|
-
# データ
|
89
|
+
# データ入力
|
94
90
|
|
95
91
|
csv = read_csv()
|
96
92
|
|
@@ -99,10 +95,6 @@
|
|
99
95
|
# 座標データ切り出し
|
100
96
|
|
101
97
|
x, y, z = cut_out(csv)
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
# 文字列を削除した分のデータ数補正
|
106
98
|
|
107
99
|
|
108
100
|
|
9
不要リスト化削除
test
CHANGED
@@ -138,7 +138,7 @@
|
|
138
138
|
|
139
139
|
yield x3, x2y, xy2, y3, x2, y2, xy
|
140
140
|
|
141
|
-
exp = list(
|
141
|
+
exp = list(zip(*calculate()))
|
142
142
|
|
143
143
|
|
144
144
|
|
8
関数名変更
test
CHANGED
@@ -118,7 +118,7 @@
|
|
118
118
|
|
119
119
|
# 変数の計算
|
120
120
|
|
121
|
-
def
|
121
|
+
def calculate():
|
122
122
|
|
123
123
|
for xi, yi in zip(x, y):
|
124
124
|
|
@@ -138,7 +138,7 @@
|
|
138
138
|
|
139
139
|
yield x3, x2y, xy2, y3, x2, y2, xy
|
140
140
|
|
141
|
-
exp = list(map(list, zip(*
|
141
|
+
exp = list(map(list, zip(*calculate())))
|
142
142
|
|
143
143
|
|
144
144
|
|
7
不要変数削除
test
CHANGED
@@ -120,7 +120,7 @@
|
|
120
120
|
|
121
121
|
def variables():
|
122
122
|
|
123
|
-
for xi, yi
|
123
|
+
for xi, yi in zip(x, y):
|
124
124
|
|
125
125
|
x3 = xi**3
|
126
126
|
|
6
変数名誤記訂正
test
CHANGED
@@ -34,7 +34,7 @@
|
|
34
34
|
|
35
35
|
"""座標データ切り出し"""
|
36
36
|
|
37
|
-
_, x, y, z = zip(*
|
37
|
+
_, x, y, z = zip(*csv)
|
38
38
|
|
39
39
|
return x[1:], y[1:], z[1:]
|
40
40
|
|
5
変数名修正
test
CHANGED
@@ -18,7 +18,7 @@
|
|
18
18
|
|
19
19
|
|
20
20
|
|
21
|
-
def csv
|
21
|
+
def read_csv():
|
22
22
|
|
23
23
|
"""データの入力"""
|
24
24
|
|
@@ -30,13 +30,11 @@
|
|
30
30
|
|
31
31
|
|
32
32
|
|
33
|
-
def
|
33
|
+
def cut_out(csv):
|
34
34
|
|
35
|
-
"""データ
|
35
|
+
"""座標データ切り出し"""
|
36
36
|
|
37
|
-
_, x, y, z = zip(*
|
37
|
+
_, x, y, z = zip(*data)
|
38
|
-
|
39
|
-
# ヘッダ行削除
|
40
38
|
|
41
39
|
return x[1:], y[1:], z[1:]
|
42
40
|
|
@@ -94,13 +92,13 @@
|
|
94
92
|
|
95
93
|
# データの入力
|
96
94
|
|
97
|
-
|
95
|
+
csv = read_csv()
|
98
96
|
|
99
97
|
|
100
98
|
|
101
|
-
# データ
|
99
|
+
# 座標データ切り出し
|
102
100
|
|
103
|
-
x, y, z =
|
101
|
+
x, y, z = cut_out(csv)
|
104
102
|
|
105
103
|
|
106
104
|
|
4
データ数変数削除
test
CHANGED
@@ -20,18 +20,6 @@
|
|
20
20
|
|
21
21
|
def csv_in():
|
22
22
|
|
23
|
-
"""データ数のカウント"""
|
24
|
-
|
25
|
-
with open('C:/Users/.spyder-py3/191224~/testdataXYZ.csv') as f:
|
26
|
-
|
27
|
-
return np.shape(list(csv.reader(f)))[0]
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
def csv_in2():
|
34
|
-
|
35
23
|
"""データの入力"""
|
36
24
|
|
37
25
|
with open('C:/Users/.spyder-py3/191224~/testdataXYZ.csv') as f:
|
@@ -42,15 +30,15 @@
|
|
42
30
|
|
43
31
|
|
44
32
|
|
45
|
-
def val_cut(
|
33
|
+
def val_cut(data):
|
46
34
|
|
47
35
|
"""データの切り分け"""
|
48
36
|
|
49
37
|
_, x, y, z = zip(*val2)
|
50
38
|
|
51
|
-
#
|
39
|
+
# ヘッダ行削除
|
52
40
|
|
53
|
-
return x[1:
|
41
|
+
return x[1:], y[1:], z[1:]
|
54
42
|
|
55
43
|
|
56
44
|
|
@@ -62,7 +50,7 @@
|
|
62
50
|
|
63
51
|
e = np.vstack([np.ones(e.shape[1]), e]) # 定数項, 説明変数
|
64
52
|
|
65
|
-
return np.linalg.lstsq(e.T, o)[0] # 偏回帰係数
|
53
|
+
return np.linalg.lstsq(e.T, o)[0] # 偏回帰係数
|
66
54
|
|
67
55
|
|
68
56
|
|
@@ -104,12 +92,6 @@
|
|
104
92
|
|
105
93
|
def main():
|
106
94
|
|
107
|
-
# データ数の受け渡し
|
108
|
-
|
109
|
-
k = csv_in()
|
110
|
-
|
111
|
-
|
112
|
-
|
113
95
|
# データの入力
|
114
96
|
|
115
97
|
data = csv_in2()
|
@@ -118,7 +100,7 @@
|
|
118
100
|
|
119
101
|
# データの切り分け
|
120
102
|
|
121
|
-
x, y, z = val_cut(
|
103
|
+
x, y, z = val_cut(data)
|
122
104
|
|
123
105
|
|
124
106
|
|
3
処理変更
test
CHANGED
@@ -42,7 +42,7 @@
|
|
42
42
|
|
43
43
|
|
44
44
|
|
45
|
-
def val_cut(
|
45
|
+
def val_cut(k, data):
|
46
46
|
|
47
47
|
"""データの切り分け"""
|
48
48
|
|
@@ -50,7 +50,7 @@
|
|
50
50
|
|
51
51
|
# 文字の削除
|
52
52
|
|
53
|
-
return x[1:], y[1:], z[1:]
|
53
|
+
return x[1:k], y[1:k], z[1:k]
|
54
54
|
|
55
55
|
|
56
56
|
|
@@ -122,6 +122,10 @@
|
|
122
122
|
|
123
123
|
|
124
124
|
|
125
|
+
# 文字列を削除した分のデータ数補正
|
126
|
+
|
127
|
+
|
128
|
+
|
125
129
|
# 数字の数値化
|
126
130
|
|
127
131
|
x = list(map(float, x))
|
2
処理修正
test
CHANGED
@@ -122,12 +122,6 @@
|
|
122
122
|
|
123
123
|
|
124
124
|
|
125
|
-
# 文字列を削除した分のデータ数補正
|
126
|
-
|
127
|
-
del x[0], y[0], z[0]
|
128
|
-
|
129
|
-
|
130
|
-
|
131
125
|
# 数字の数値化
|
132
126
|
|
133
127
|
x = list(map(float, x))
|
1
一部変更
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
無駄な変数の初期化はやめましょう。
|
2
2
|
|
3
|
-
動作確認できてませんが、ざっと。
|
3
|
+
動作確認できてませんが、ざっと見直してみました。
|
4
4
|
|
5
5
|
|
6
6
|
|
@@ -50,9 +50,7 @@
|
|
50
50
|
|
51
51
|
# 文字の削除
|
52
52
|
|
53
|
-
|
53
|
+
return x[1:], y[1:], z[1:]
|
54
|
-
|
55
|
-
return x, y, z
|
56
54
|
|
57
55
|
|
58
56
|
|