teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

説明追加

2021/03/12 02:50

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -22,4 +22,5 @@
22
22
  (2,)
23
23
  ```
24
24
 
25
- numpyの数値計算機能を使わずに単に入れ物として使うだけでしたら、dtypeとしてobjectを指定すればどんなものでも入れることはできます。
25
+ numpyの数値計算機能を使わずに単に入れ物として使うだけでしたら、dtypeとしてobjectを指定すればどんなものでも入れることはできます。
26
+ しかし、そのような使い方なら、列ごとにデータ型を指定できるpandasのデータフレームを使った方が楽でしょう。

2

説明追加

2021/03/12 02:49

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -20,4 +20,6 @@
20
20
  [(1980, 5. ) (1981, 1.2)]
21
21
  >>> print(a2.shape)
22
22
  (2,)
23
- ```
23
+ ```
24
+
25
+ numpyの数値計算機能を使わずに単に入れ物として使うだけでしたら、dtypeとしてobjectを指定すればどんなものでも入れることはできます。

1

例を追加

2021/03/12 00:03

投稿

ppaul
ppaul

スコア24672

answer CHANGED
@@ -3,4 +3,21 @@
3
3
  ndarrayでは全ての要素は同じdtypeを持ちます。dtypeとしてstructured arrayを使えば
4
4
  [(1983, 2, 3.9, -1.4, 16, 27. , 54.3)
5
5
  (1983, 3, 9.7, 3.5, 2, 32.9, 75.5)]
6
- のように表記されます。
6
+ のように表記されます。
7
+
8
+ 以下をご覧ください。
9
+
10
+ ```python
11
+ >>>
12
+ >>> a1 = np.array([[1980, 5.0],[1981, 1.2]])
13
+ >>> a2 = np.array([(1980, 5.0), (1981, 1.2)], dtype=[("x", int), ("y", float)])
14
+ >>> print(a1)
15
+ [[1.980e+03 5.000e+00]
16
+ [1.981e+03 1.200e+00]]
17
+ >>> print(a1.shape)
18
+ (2, 2)
19
+ >>> print(a2)
20
+ [(1980, 5. ) (1981, 1.2)]
21
+ >>> print(a2.shape)
22
+ (2,)
23
+ ```