回答編集履歴

10

コメント修正

2019/12/30 07:00

投稿

shiracamus
shiracamus

スコア5406

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

不要リスト化削除

2019/12/30 07:00

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -138,7 +138,7 @@
138
138
 
139
139
  yield x3, x2y, xy2, y3, x2, y2, xy
140
140
 
141
- exp = list(map(list, zip(*calculate())))
141
+ exp = list(zip(*calculate()))
142
142
 
143
143
 
144
144
 

8

関数名変更

2019/12/30 06:55

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -118,7 +118,7 @@
118
118
 
119
119
  # 変数の計算
120
120
 
121
- def variables():
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(*variables())))
141
+ exp = list(map(list, zip(*calculate())))
142
142
 
143
143
 
144
144
 

7

不要変数削除

2019/12/30 06:51

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -120,7 +120,7 @@
120
120
 
121
121
  def variables():
122
122
 
123
- for xi, yi, zi in zip(x, y, z):
123
+ for xi, yi in zip(x, y):
124
124
 
125
125
  x3 = xi**3
126
126
 

6

変数名誤記訂正

2019/12/30 06:49

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -34,7 +34,7 @@
34
34
 
35
35
  """座標データ切り出し"""
36
36
 
37
- _, x, y, z = zip(*data)
37
+ _, x, y, z = zip(*csv)
38
38
 
39
39
  return x[1:], y[1:], z[1:]
40
40
 

5

変数名修正

2019/12/30 06:46

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -18,7 +18,7 @@
18
18
 
19
19
 
20
20
 
21
- def csv_in():
21
+ def read_csv():
22
22
 
23
23
  """データの入力"""
24
24
 
@@ -30,13 +30,11 @@
30
30
 
31
31
 
32
32
 
33
- def val_cut(data):
33
+ def cut_out(csv):
34
34
 
35
- """データ切り分け"""
35
+ """座標データ切り出し"""
36
36
 
37
- _, x, y, z = zip(*val2)
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
- data = csv_in2()
95
+ csv = read_csv()
98
96
 
99
97
 
100
98
 
101
- # データ切り分け
99
+ # 座標データ切り出し
102
100
 
103
- x, y, z = val_cut(data)
101
+ x, y, z = cut_out(csv)
104
102
 
105
103
 
106
104
 

4

データ数変数削除

2019/12/30 06:40

投稿

shiracamus
shiracamus

スコア5406

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(k, data):
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:k], y[1:k], z[1:k]
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(k, data)
103
+ x, y, z = val_cut(data)
122
104
 
123
105
 
124
106
 

3

処理変更

2019/12/30 06:35

投稿

shiracamus
shiracamus

スコア5406

test CHANGED
@@ -42,7 +42,7 @@
42
42
 
43
43
 
44
44
 
45
- def val_cut(j, val2):
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

処理修正

2019/12/30 06:31

投稿

shiracamus
shiracamus

スコア5406

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

一部変更

2019/12/30 06:25

投稿

shiracamus
shiracamus

スコア5406

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
- del x[0], y[0], z[0]
53
+ return x[1:], y[1:], z[1:]
54
-
55
- return x, y, z
56
54
 
57
55
 
58
56