らふのプログラミングメモ

プログラミングメモです。

NumPyのndarray その7 ndarrayにCSVファイルを読み込んでみよう

PandasのDataFrameにCSVファイルを読み込むというのを以前まとめました。

rafu.hatenablog.jp

今回はndarrayにCSVファイルを読み込んでみたいと思います。

まずはテストデータを作ってみよう

NumPyの特徴が計算に特化しているということなので、
今回は数値のみ(int)のファイルを作成してみました。

例:
今回はtest2.csvというCSVファイルを読み込んでみよう
CSVファイルの配置場所は、Pythonの実行環境と同じ場所においてみる。

python/
 ├ MMM.py(今回実行するファイル)
 ├ test2.csv(読み込みたいCSVファイル)

test2.csv(文字コード:Shift-JIS)の中身


1,2,3
2,3,4
3,4,5


実際にデータを取り込んでみよう!

MMM.py

import numpy as np

# loadtxtを使って区切り文字を使ったファイルの読み込みを行う。
# encoding:shift_JISのファイルなので指定します。
# delimiter:デフォルトは空白なので、カンマの指定をします。
n_array = np.loadtxt("test.csv", encoding = "shift_JIS" ,delimiter = ",")
print(n_array)

n_arrayの結果:
[ [1. 2. 3.]
[2. 3. 4.]
[3. 4. 5.]]

n_arrayの結果に全て小数点がつきました。
ということで、型の確認をしてみたいと思います。

print(n_array.dtype)

n_array.dtypeの結果:float64

これより、CSVファイルには整数で入っていた数値が
ndarrayに取り込む際にfloat64型に変換されたことがわかります。



<最終更新日:2021/09/14>
2021/09/14 投稿

NumPyのndarray その6 ndarrayとSeriesを相互変換してみよう

先日はndarray⇄DataFrameの相互変換をまとめてみました。

rafu.hatenablog.jp

次は?ということで、ndarray⇄Seriesの相互変換をやってみたいと思います。

今回のテストデータとして、ndarrayに以下のデータを使用します。

10 20 30 40 50

まずはndarray→Seriesへの変換

ndarrayにインデックスをつけて変換することが可能です。
(何もつけないでいると自動で0から割り振られます。)

  • 実際にやってみよう
import numpy as np
import pandas as pd
# テストデータ作成
data = [10,20,30,40,50]
# テストデータをndarrayに入れる
a = np.array(data)
# ndarray→Seriesに変換。
s = pd.Series(a)
print(s)

sの結果:
今回はインデックスに何も指定をしていないので、
自動で0から割り振られました。

010
120
230
340
450

続いて、Series→ndarrayに変換してみよう。

DataFrame→ndarrayの時と同じように、Seriesのラベル情報は
ndarrayに変換される際に失われてしまいます。

  • 実際やってみよう
# print(s)の続き
n = np.array(s)
print(n)

nの結果: [10 20 30 40 50]

一番初めに作ったテストデータと同じものができあがりました。


<最終更新日:2021/09/13>
2021/09/13 投稿