Pythonのデータ分析(A):numpyの基本

1.はじめに

numpyの(数値のPython)は、オープンソースのPython科学計算の拡張機能は、主に直接、簡単、効率的かつよりなければならない基本的なデータ構造を使用するよりも、一般的に同じタスクについて計算任意の寸法のマトリックスアレイ、Pythonのnumpyのを処理するために使用されます。インストールのpip install numpyコマンド。

2.

2.1 ndarray

すなわち、N次元アレイ型ndarrayは、セット内の開始要素インデックスに0を標識し、同じデータ型のコレクションです。

numpyの配列方法は、次の形式の配列を作成するために使用することができます:

配列(p_object、DTYPE =なし、コピー= Trueの場合、順番= 'K'、テスト= Falseの、ndmin = 0)

  • p_object:ネストされた配列または列の数

  • DTYPE:配列要素のデータ型

  • コピー:コピーしたい場合は

  • 順序:スタイル・アレイを作成し、Cが行方向であり、Fは、列方向で、Aは、任意の方向(デフォルト)

  • subok:基本クラスの配列と一致し、デフォルトのリターン

  • ndmin:アレイの最小寸法を生成します

もちろん、この方法はまた、例は、特定の使用を見て、次の使用arangeかもしれません。

配列を作成します

1次元配列を作成する方法を見てください

import numpy as np

arr1 = np.array([1, 2, 3, 4, 5])
arr2 = np.array(range(1, 6))
arr3 = np.arange(1, 6)
print (arr1)
print (arr2)
print (arr3)

例えば、多次元配列、2次元配列を作成する方法を見てください

import numpy as np

arr = np.array([[1, 2], [3, 4], [5, 6]])
print(arr)

共通のプロパティ

オブジェクトの共通プロパティの例を見てのところでndarray

import numpy as np

arr = np.array([1, 2, 3])
# 元素类型
print(arr.dtype)
# 形状
print(arr.shape)
# 元素个数
print(arr.size)
# 维度
print(arr.ndim)
# 每个元素大小(字节)
print(arr.itemsize)

配列の形状を変更します

import numpy as np

arr = np.arange(30)
print(arr)
# 变成二维数组
arr.shape = (5, 6)
print(arr)
# 变成三维数组
arr = arr.reshape((2, 3, 5))
print(arr)

2.2データ型

一般的なデータ型の以下のテーブルルックnumpyのことで。

タイプ 説明
INT_ (長いC言語、INT32またはInt64型に似て)デフォルトの整数型
INTC 同じタイプCとINTは、INTは、一般的に64またはINT32であります
INTP インデックスの整数型のための(一般INT32またはInt64のままssize_tの、C様)
INT8 バイト(127 -128)
INT16 整数(-32768〜32767)
INT32 整数(-2147483648 2147483647まで)
int64モード 整数(9223372036854775807に-9223372036854775808)
UINT8 符号なし整数(0〜255)
uint16の 符号なし整数(0〜65535)
UINT32 符号なし整数(0 4294967295)に
UINT64 符号なし整数(0 18446744073709551615まで)
bool_ Booleanデータ型(TrueまたはFalse)
浮く_ 速記の種類のfloat64
float16 半精度浮動小数点数であって、符号ビット、5ビットの指数部、10仮数ビット
float32 含む単精度浮動小数点数、:符号ビットは、8つの指数部、23仮数ビット
float64 含む倍精度浮動小数点、:符号ビット、11個の指数ビットを、52ビットの仮数
繁雑_ complex128速記タイプ、即ち、128ビットの複数
complex64 複雑な、32ビット浮動小数点数は、ビス(実数部と虚数部)を表します
complex128 複雑な、64ビットの浮動小数点数は、ビス(実数部と虚数部)を表します

方法の例では、ビューのデータ型を変更します。

import numpy as np

arr1 = np.array([1, 2, 3])
arr2 = np.array([1.111, 2.222, 3.333])
# 当前数据类型
print(arr1.dtype)
# 修改数据类型
arr1 = arr1.astype(np.int64)
print(arr1.dtype)
# 保留一位小数
arr2 = np.round(arr2, 1)
print(arr2)

2.3インデックスとスライスしました

numpyのアレイサポートのインデックスは、操作をスライス、また、1次元配列を見て、反復することができます。

import numpy as np

arr = np.array([1, 2, 3, 4, 5, 6])
print(arr[3])
# 修改元素值
arr[3] = 10
print(arr[3])
print(arr[2:])
print(arr[2:4])
print(arr[4:])
for i in arr:
    print(i)

これらの操作多次元配列を見てください。

import numpy as np

arr = np.arange(12).reshape(3, 4)
print(arr)
# 取某一个值
print(arr[2, 3])
# 取多个不连续的值
print(arr[[0, 2],[1, 3]])
# 取一行
print(arr[0])
# 连续取多行
print(arr[1:])
# 取不连续的多行
print(arr[[0, 2]])
# 取一列
print(arr[:, 0])
# 连续取多列
print(arr[:, 2:])
# 取不连续的多列
print(arr[:, [0, 2]])

ビューの2.4コピー

ビュー(浅いコピー)はちょうど元のデータへの参照は、この参照によってアクセスすることができている私たちはビューを変更する場合は浅いコピーがメモリを共有しているため、元のデータの操作は、それは、元のデータに影響を与えます。

コピー(ディープコピー)我々はコピーに変更を加えた場合、深いコピーがメモリを共有していないので、それは、元のデータには影響しません、データの完全なコピーです。

コールndarrayビュー()メソッドは、例えばルックにより、以下のビューを生成します。

import numpy as np

a = np.arange(6).reshape(2,3)
# 创建视图
b = a.view()
print('a的id:', id(a))
print('b的id:', id(b))
# 修改 b 的形状
b.shape =  3,2
print('a的形状:')
print(a)
print('b的形状:')
print(b)
print(a is b)

コピーndarrayを呼び出し()メソッドはを見て、一例として、以下のコピーを生成します。

import numpy as np

a = np.arange(1, 6)
# 创建副本
b = a.copy()
print(a is b)
b[1] = 10
print(a[1])
print(b[1])

2.5コンセプトシャフト

numpyのは、軸方向に単純なデジタル0,1,2の使用のみ0、0、1つの軸の二次元アレイの一次元アレイ軸前記意図され、三次元アレイは、軸0,1,2シャフト理解しています概念を対応する私たちは、適切な計算を行うことができます。

2.6基本操作

アレイとデジタル間の動作

プラスアレイと数、減算、乗算、除算および乗算の間ルック。

import numpy as np

arr = np.arange(12).reshape(3, 4)
print(arr + 3)
print(arr - 1)
print(arr * 2)
print(arr / 3)

アレイおよびアレイ間の動作

アレイおよびアレイ間の動作を見てください。

import numpy as np

# 相同行数,相同列数
a = np.arange(12).reshape(3, 4)
b = np.arange(20, 32).reshape(3, 4)
print(a + b)
print(b * a)
# 相同行数
c = np.arange(12).reshape(3, 4)
d = np.arange(3).reshape(3, 1)
print(c + d)
print(c - d)
# 相同列数
e = np.arange(12).reshape(4, 3)
f = np.arange(3).reshape(1, 3)
print(e * f)
print(e - f)

一般的な数学

import numpy as np

arr = np.array([[33, 55], [11, 66], [22, 99]])
print(arr)
# 最大值
print(np.max(arr))
# 最小值
print(np.min(arr))
# 某一轴上的最大值
print(np.max(arr, 1))
# 某一轴上的最小值
print(np.min(arr, 1))
# 平均值
print(np.mean(arr))
# 某一行、一列的平均值
print(np.mean(arr, axis=1))
# 最大值索引
print(np.argmax(arr))
print(np.argmax(arr, axis=1))
# 最小值索引
print(np.argmin(arr))
print(np.argmin(arr, axis=1))
# 极差
print(np.ptp(arr))
print(np.ptp(arr, axis=1))
# 方差
print(np.var(arr))
# 标准差
print(np.std(arr))
# 中位数
print(np.median(arr))

2.7共通操作

追加操作

numpyのは、追記()メソッドは、アレイ全体に割り当てられた操作を配列の最後の値を追加し、新しいアレイ、以下の例示的な外観を使用して、入力整合寸法の動作を保証する必要の元の配列をコピーすることができます。

import numpy as np

arr = np.array([[1, 3, 5], [2, 4, 6]])
# 添加元素
print(np.append(arr, [1, 1, 3]))
# 沿 0 轴添加元素
print(np.append(arr, [[1, 1, 3]], axis=0))
# 沿 1 轴添加元素
print(np.append(arr, [[1, 1, 3], [2, 1, 5]], axis=1))

我々はまた、以下の例示的な外観を使用して、指定された指定されたインデックスの最前線軸配列値に挿入される挿入部()メソッドの追加操作を、使用することができます。

import numpy as np

arr = np.array([[1, 3, 5], [2, 4, 6]])
# 添加元素
print(np.insert(arr, 1, [1, 1, 3]))
# 沿 0 轴添加元素
print(np.insert(arr, 1, [1, 1, 3], axis=0))
# 沿 1 轴添加元素
print(np.insert(arr, 1, [1, 5], axis=1))

削除

numpyの削除()アレイを削除することができ、一例で下記を見てください。

import numpy as np

arr = np.array([[1, 3, 5], [2, 4, 6]])
# 删除元素
print(np.delete(arr, 1))
# 沿 0 轴删除元素
print(np.delete(arr, 1, axis=0))
# 沿 1 轴删除元素
print(np.delete(arr, 1, axis=1))

重複排除操作

numpyのユニーク()メソッドは、配列内の反復因子を除去することができます。

import numpy as np

arr = np.array([1, 3, 5, 2, 4, 6, 1, 5, 3])
# 去除重复元素
print(np.unique(arr))
# 去重数组的索引数组
u, indices = np.unique(arr, return_index=True)
print(indices)
# 去重元素的重复数量
u, indices = np.unique(arr, return_counts=True)
print(indices)

公開された64元の記事 ウォンの賞賛1276 ビュー30万+

おすすめ

転載: blog.csdn.net/ityard/article/details/104727326