回答編集履歴

2

Update

2021/11/12 07:50

投稿

melian
melian

スコア19825

test CHANGED
@@ -112,6 +112,22 @@
112
112
 
113
113
 
114
114
 
115
+ 後々の事を考えると、固定長で確保するよりは `dtype` に `object` を指定する方が良いかもしれません。
116
+
117
+ ```python
118
+
119
+ #InitData = np.full((65,18),1)
120
+
121
+ #boardData = InitData.astype(str)
122
+
123
+
124
+
125
+ boardData = np.full((65,18), '', dtype=object)
126
+
127
+ ```
128
+
129
+
130
+
115
131
  **余談**
116
132
 
117
133
 
@@ -124,7 +140,11 @@
124
140
 
125
141
 
126
142
 
143
+ xfpath = 'data.xml'
144
+
145
+
146
+
127
- df = pd.read_xml('data.xml', xpath='board')
147
+ df = pd.read_xml(xfpath, xpath='board')
128
148
 
129
149
  df.fillna('', inplace=True)
130
150
 
@@ -132,23 +152,47 @@
132
152
 
133
153
  boardData = df.to_numpy(copy=True)
134
154
 
155
+ print(f'boardData:\n{boardData}\n')
156
+
135
- print(f' Type: {type(boardData)}')
157
+ print(f' Type: {type(boardData)}')
158
+
136
-
159
+ print(f' DataType: {type(boardData.dtype)}')
160
+
137
- print(f'Shape : {boardData.shape}')
161
+ print(f' Shape: {boardData.shape}')
138
162
 
139
163
 
140
164
 
141
165
  boardData[2][1] = boardData[2][1] * 5
142
166
 
143
- print(f'boardData[2][1]: {boardData[2][1]}')
167
+ print(f'\nboardData[2][1]: {boardData[2][1]}')
144
168
 
145
169
 
146
170
 
147
171
  _ = """
148
172
 
173
+ boardData:
174
+
175
+ [[1 'AKT53' 'K82' 'QT3' 'Q6' 'QJ7' 'T64' '976' 'J942' 98.0 'AJ93' 'A85'
176
+
177
+ 'T875' '642' 'Q75' 'KJ42' 'AK3' 'NONE' 'N']
178
+
179
+ [2 '87' '64' 'T52' 'AQ6532' 'QT965' 'AT8' 'J64' '87' 4.0 'J953' 'K9873'
180
+
181
+ 'J94' 'AKJ32' 'KQ72' 'AQ' 'KT' 'NS' 'E']
182
+
183
+ [3 'AKQJT98765432' '' '' '' '' 'AKQJT98765432' '' '' '' ''
184
+
185
+ 'AKQJT98765432' 'J94' '' '' '' 'AKQJT98765432' '' 'W']]
186
+
187
+
188
+
149
- Type: <class 'numpy.ndarray'>
189
+ Type: <class 'numpy.ndarray'>
190
+
150
-
191
+ DataType: <class 'numpy.dtype[object_]'>
192
+
151
- Shape : (3, 19)
193
+ Shape: (3, 19)
194
+
195
+
152
196
 
153
197
  boardData[2][1]: AKQJT98765432AKQJT98765432AKQJT98765432AKQJT98765432AKQJT98765432
154
198
 

1

Update

2021/11/12 07:50

投稿

melian
melian

スコア19825

test CHANGED
@@ -60,6 +60,12 @@
60
60
 
61
61
 
62
62
 
63
+ 以下の説明は間違いです。正しくは bsdfan さんのコメントをお読み下さい。
64
+
65
+
66
+
67
+ ===== ここから =====
68
+
63
69
  ちなみに、`numpy 1.21.4` ではデフォルトで `21` バイト確保されるので当該の問題は発生しません。
64
70
 
65
71
  ```python
@@ -102,6 +108,8 @@
102
108
 
103
109
  ```
104
110
 
111
+ ===== ここまで =====
112
+
105
113
 
106
114
 
107
115
  **余談**
@@ -122,22 +130,28 @@
122
130
 
123
131
 
124
132
 
125
- print(df)
133
+ boardData = df.to_numpy(copy=True)
134
+
135
+ print(f' Type: {type(boardData)}')
136
+
137
+ print(f'Shape : {boardData.shape}')
126
138
 
127
139
 
128
140
 
129
- #
141
+ boardData[2][1] = boardData[2][1] * 5
130
142
 
131
- num ns nh nd nc es ... ws wh wd wc vul deal
143
+ print(f'boardData[2][1]: {boardData[2][1]}')
132
-
133
- 0 1 AKT53 K82 QT3 Q6 QJ7 ... 642 Q75 KJ42 AK3 NONE N
134
-
135
- 1 2 87 64 T52 AQ6532 QT965 ... AKJ32 KQ72 AQ KT NS E
136
-
137
- 2 3 AKQJT98765432 ... AKQJT98765432 W
138
144
 
139
145
 
140
146
 
147
+ _ = """
148
+
149
+ Type: <class 'numpy.ndarray'>
150
+
151
+ Shape : (3, 19)
152
+
153
+ boardData[2][1]: AKQJT98765432AKQJT98765432AKQJT98765432AKQJT98765432AKQJT98765432
154
+
141
- [3 rows x 19 columns]
155
+ """
142
156
 
143
157
  ```