データ分析用ライブラリ(2)
この記事は、eliceの2021 NIPA AIオンライントレーニングを聞いた後、個人学習のために整理したものです.
NumpyはNemerical Python、すなわち数値Pythonを意味する
Pythonは大規模な多次元配列の処理を支援するライブラリです.
大規模は多くのことを意味し,多次元は2次元以上を意味し,配列はデータをリストすることを意味する.
リファレンス🎈 PythonにはPandas、Numpy、Matplotlibなどのライブラリがあります.
では、なぜ大規模な多次元アレイを理解するのでしょうか.
👉 ほとんどのデータは数字の配列と見なすことができるからです!
画像と音声データはデジタル配列で表すことができる.
大量のデータをデジタル配列と見なし、Numpyで処理します!
文を繰り返すことなく並べ替える
Pythonリストに比べて、より高速なコンピューティングとより高いメモリ使用率をサポート
list配列を生成し、出力フォーマット を検証する. NumPyアレイ作成および出力形式検証 Numpyはライブラリなので、importキーを使用してロードする必要があります.
0から4までの連続数を含む配列を作成し、arrayという配列に保存します.
Pythonリストとは異なり、同じデータ型しか格納できません!
リスト:[1,1,4,True,[S]複数データO.K🙆♀️🙆♂️
Nompe:[11.4True“S”]🙅♀️🙅♂️ 単一データのみ許可!
dtypeの例は、様々なタイプの整数タイプ1、2、3 i、int、int 32、int 64、i 8 float実数タイプ0.2、1.4 f、float、float 32、float 64、f 8 str文字列タイプ「S」、「s」str、U、U 32 boolブールタイプTrue、Falseを示す.bool_
最もよく使われる intです.int64 = i8 int 32、int 64などの後の数字は容量を表す.64位は32位より大きいでしょう.😘 float_ = float64 = f8 str UnicodeのUを表す ブールは真偽を判断し、
次元に関連するプロパティ:ndim&shape
sizeは配列内の要素の個数lenは行数です(ただし、1次元では要素の個数を返します)
💎 属性に属する
💎 インデックスは0から始まることを覚えておいてください.
検索データをインデックス、切り取りデータをsleingと呼びます.
索引による値の検索
numpyモジュールのarange関数(
stopパラメータの値は渡さなければなりませんが、startはstepを渡すとは限りません.start値が渡されていない場合はデフォルトで0、step値が渡されていない場合はデフォルトで1です.
dtypeの場合、結果を返す配列のタイプを指定します.dtype値が与えられていない場合、伝達された他のパラメータからtypeが推定されます.
出典:https://codepractice.tistory.com/88[コーディング練習]
配列の一部をインデックスとして取得する値
動作はPythonのlistと似ています.
Boolean maskを使用して、アレイ内の各要素の選択方法を指定します.
❔Boolean mask:True/Falseマスクアレイ条件を満たすデータ を取得する. TrueかFalseか教えてください. Trueの対応する要素を問い合わせることができます.
インデックス配列を渡すことで、配列内の各要素の選択を指定します.
つまり、検索する場所(=インデックス)にはどのような値がありますか?
2.データ処理用ライブラリNumpy
1)Numpyとは?
NumpyはNemerical Python、すなわち数値Pythonを意味する
Pythonは大規模な多次元配列の処理を支援するライブラリです.
大規模は多くのことを意味し,多次元は2次元以上を意味し,配列はデータをリストすることを意味する.
リファレンス🎈 PythonにはPandas、Numpy、Matplotlibなどのライブラリがあります.
では、なぜ大規模な多次元アレイを理解するのでしょうか.
👉 ほとんどのデータは数字の配列と見なすことができるからです!
画像と音声データはデジタル配列で表すことができる.
大量のデータをデジタル配列と見なし、Numpyで処理します!
Numpyプロパティ
文を繰り返すことなく並べ替える
Pythonリストに比べて、より高速なコンピューティングとより高いメモリ使用率をサポート
それとは違うのは
list_arr = list(range(5))
print(list_arr) # [0, 1, 2, 3, 4] → 콤마(,)로 구분
print(type(list_arr)) # <class 'list> 자료형이 리스트!
import numpy as np
:numpyモジュールは「np」別名を読み込み、付与するndarray
:n次元配列import numpy as np
np_arr = np.array(range(5))
print(np_arr) # [0 1 2 3 4] → 공백으로 구분
print(type(np_arr)) # <class 'numpy.ndarray'>
以下は1次元リスト!スペースで区切られたのはn次元配列です!実習シナリオの作成
0から4までの連続数を含む配列を作成し、arrayという配列に保存します.
import numpy as np
array = np.array(range(5))
print(array)
>>> [0 1 2 3 4]
2)アレイの基礎
配列内のデータ型dtype
Pythonリストとは異なり、同じデータ型しか格納できません!
リスト:[1,1,4,True,[S]複数データO.K🙆♀️🙆♂️
Nompe:[11.4True“S”]🙅♀️🙅♂️ 単一データのみ許可!
astype()
他のデータ型に変換astype(int)
整数型に変換!arr = np.array([0, 1, 2, 3, 4], dtype = float) # float는 실수형
print(arr) # [0. 1. 2. 3. 4.] # float형으로 데이터 타입을 지정하였으므로 정수 부분 뒤에 .이 나타남
print(arr.dtype) # 'float64'
print(arr.astype(int)) # [0 1 2 3 4]
dtypeタイプ
dtypeの例は、様々なタイプの整数タイプ1、2、3 i、int、int 32、int 64、i 8 float実数タイプ0.2、1.4 f、float、float 32、float 64、f 8 str文字列タイプ「S」、「s」str、U、U 32 boolブールタイプTrue、Falseを示す.bool_
最もよく使われる
?
も使用した.カレンダ配列のプロパティ
次元に関連するプロパティ:ndim&shape
ndim
:n+dimension,n次元shape
:形状の関数、(row, column)
;1行のみの場合、(데이터 갯수, )
# 1차원배열.py
list = [0, 1, 2, 3]
arr = np.array(list)
print(arr.ndim) # 1 → 1차원
print(arr.shape) # (4, ) → 4개의 값이 한 행에 존재
# 2차원배열.py
list = [[0, 1, 2], [3, 4, 5]]
arr = np.array(list)
print(arr.ndim) # 2 → 2개의 행이니까 2차원
print(arr.shape) # (2, 3) → 2개의 행이 3개의 열로 존재
スペシフィケーションのサイズプロパティとシェイプの調整arr.size
とlen(arr)
の概念は違います.sizeは配列内の要素の個数lenは行数です(ただし、1次元では要素の個数を返します)
arr = np.array([0, 1, 2, 3, 4, 5])
print("arr.shape: {}".format(arr.shape)) # arr.shape: (6, )
print("배열 요소의 수: {}".format(arr.size)) # 배열 요소의 수: 6
print("배열의 길이: {}".format(len(arr)) # 배열의 길이 : 6
arr.shape = 3, 2 # arr.shape를 (3, 2)로 바꿈
print("arr.shape: {}".format(arr.shape)) # arr.shape: (3, 2)
print("배열 요소의 수: {}".format(arr.size)) # 배열 요소의 수: 6
print("배열의 길이: {}".format(len(arr)) # 배열의 길이 : 3
実習手配の基礎(1)
import numpy as np
print("1차원 array")
array = np.array(range(10))
print(array)
# 1. array의 자료형을 출력해보세요.
print(type(array))
# 2. array의 차원을 출력해보세요.
print(array.ndim)
# 3. array의 모양을 출력해보세요.
print(array.shape)
# 4. array의 크기를 출력해보세요.
print(array.size)
# 5. array의 dtype(data type)을 출력해보세요.
print(array.dtype)
# 6. array의 인덱스 5의 요소를 출력해보세요.
print(array[5])
# 7. array의 인덱스 3의 요소부터 인덱스 5 요소까지 출력해보세요.
print(array[3:6])
💎 属性に属する
ndim, shape, size, dtype
は.
とともに書く実習手配の基礎(2)
import numpy as np
print("2차원 array")
#1부터 15까지 들어있는 (3,5)짜리 배열을 만듭니다.
matrix = np.array(range(1,16))
matrix.shape = 3,5
print(matrix)
# 1. matrix의 자료형을 출력해보세요.
print(type(matrix))
# 2. matrix의 차원을 출력해보세요.
print(matrix.ndim)
# 3. matrix의 모양을 출력해보세요.
print(matrix.shape)
# 4. matrix의 크기를 출력해보세요.
print(matrix.size)
# 5. matrix의 dtype(data type)을 출력해보세요.
print(matrix.dtype)
# 6. matrix의 dtype을 str로 변경하여 출력해보세요.
print(matrix.astype(str)) # 'str'도 가능
# 7. matrix의 (2,3) 인덱스의 요소를 출력해보세요.
print(matrix[2,3])
# 8. matrix의 행은 인덱스 0부터 인덱스 1까지, 열은 인덱스 1부터 인덱스 3까지 출력해보세요.
print(matrix[0:2,1:4])
💎 インデックスは0から始まることを覚えておいてください.
3) Indexing & Slicing
検索データをインデックス、切り取りデータをsleingと呼びます.
indexing
索引による値の検索
numpyモジュールのarange関数(
np.arange(start, stop, step, dtype)
)は、半開放区間[start,stop)におけるstepサイズに等しい数値を配列形式で返す関数である.stopパラメータの値は渡さなければなりませんが、startはstepを渡すとは限りません.start値が渡されていない場合はデフォルトで0、step値が渡されていない場合はデフォルトで1です.
dtypeの場合、結果を返す配列のタイプを指定します.dtype値が与えられていない場合、伝達された他のパラメータからtypeが推定されます.
出典:https://codepractice.tistory.com/88[コーディング練習]
# 1차원배열.py
x = np.arange(7)
print(x) # [0 1 2 3 4 5 6]
pritn(x[3]) # 3
print(x[7]) # IndexError : index 7 is out of bounds
x[0] = 10 # 데이터 변경하기
print(x) # [10 1 2 3 4 5 6]
# 2차원배열.py
x = np.arange(1, 13, 1) #
x.shape = 3, 4
print(x)
# [[1 2 3 4] [5 6 7 8] [9 10 11 12]]
print(x[2, 3]) # 12
slicing
配列の一部をインデックスとして取得する値
動作はPythonのlistと似ています.
# 1차원배열.py
x = np.arange(7)
print(x) # [0 1 2 3 4 5 6]
pritn(x[1:4]) # [1 2 3]
print(x[1: ]) # [1 2 3 4 5 6]
print(x[ :4]) # [0 1 2 3]
print(x[::2]) # [0 2 4 6]
# 2차원배열.py
x = np.arange(1, 13, 1) #
x.shape = 3, 4
print(x)
# [[1 2 3 4] [5 6 7 8] [9 10 11 12]]
pritn(x[1:2, :2:3]) # [[5]]
print(x[1:, :2]) # [[5 6] [9 10]]
Boolean indexing
Boolean maskを使用して、アレイ内の各要素の選択方法を指定します.
❔Boolean mask:True/Falseマスクアレイ
x = np.arange(7)
print(x) # [0 1 2 3 4 5 6]
print(x < 3) # [True True True False False False False]
print(x > 7) # [False False False False False False False]
print(x[x < 3]) # [0 1 2]
print(x[x % 2 == 0] # [0 2 4 6]
Fancy indexing
インデックス配列を渡すことで、配列内の各要素の選択を指定します.
つまり、検索する場所(=インデックス)にはどのような値がありますか?
# 인덱스로 찾기
x = np.arange(7)
print(x) # [0 1 2 3 4 5 6]
print(x[[1, 3, 5]]) # 인덱스 번호 [1, 3, 5] 자리에 뭐가 있는지 알려줌 → [1, 3, 5]
# 행으로 찾기
x = np.arange(1, 13, 1).reshape(3, 4)
print(x)
# [[1 2 3 4] [5 6 7 8] [9 10 11 12]]
print(x[[0, 2]]) # 0번째 행, 2번째 행 → [[1 2 3 4] [9 10 11 12]]
👉 IndexingとSlicingの適切な組み合わせは、必要な要素を指定するために使用できます!x = np.arange(1, 13, 1).reshape(3, 4)
print(x)
# [[1 2 3 4] [5 6 7 8] [9 10 11 12]]
print(x[1:2, 2]) # [7]
print(x[[0,2], 2]) # [ 3 11]
print(x[[0,2], :2]) # [[ 1 2] [ 9 10]]
実習インデックスとポリシー
import numpy as np
matrix = np.arange(1, 13, 1).reshape(3, 4)
print(matrix)
# 1. Indexing을 통해 값 2를 출력해보세요.
answer1 = matrix[0,1]
# 2. Slicing을 통해 매트릭스 일부인 9, 10을 가져와 출력해보세요.
answer2 = matrix[2, :2] # matrix[2:, :2] → [[9 10]]
# 3. Boolean indexing을 통해 5보다 작은 수를 찾아 출력해보세요.
answer3 = matrix[matrix < 5]
# 4. Fancy indexing을 통해 두 번째 행만 추출하여 출력해보세요.
answer4 = matrix[1] # matrix[[1]] → [[5 6 7 8]]
# 위에서 구한 정답을 출력해봅시다.
print(answer1)
print(answer2)
print(answer3)
print(answer4)
Reference
この問題について(データ分析用ライブラリ(2)), 我々は、より多くの情報をここで見つけました https://velog.io/@traumen25/데이터-분석을-위한-라이브러리2テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol