atwiki-logo
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このウィキの更新情報RSS
    • このウィキ新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡(不具合、障害など)
kohei-hasegawa @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
kohei-hasegawa @ ウィキ
  • ウィキ募集バナー
  • 目安箱バナー
  • 操作ガイド
  • 新規作成
  • 編集する
  • 全ページ一覧
  • 登録/ログイン
ページ一覧
kohei-hasegawa @ ウィキ
  • 新規作成
  • 編集する
  • 登録/ログイン
  • 管理メニュー
管理メニュー
  • 新規作成
    • 新規ページ作成
    • 新規ページ作成(その他)
      • このページをコピーして新規ページ作成
      • このウィキ内の別ページをコピーして新規ページ作成
      • このページの子ページを作成
    • 新規ウィキ作成
  • 編集
    • ページ編集
    • ページ編集(簡易版)
    • ページ名変更
    • メニュー非表示でページ編集
    • ページの閲覧/編集権限変更
    • ページの編集モード変更
    • このページにファイルをアップロード
    • メニューを編集
    • 右メニューを編集
  • バージョン管理
    • 最新版変更点(差分)
    • 編集履歴(バックアップ)
    • アップロードファイル履歴
    • ページ操作履歴
  • ページ一覧
    • このウィキの全ページ一覧
    • このウィキのタグ一覧
    • このウィキのタグ一覧(更新順)
    • このページの全コメント一覧
    • このウィキの全コメント一覧
    • おまかせページ移動
  • RSS
    • このwikiの更新情報RSS
    • このwikiの新着ページRSS
  • ヘルプ
    • ご利用ガイド
    • Wiki初心者向けガイド(基本操作)
    • このウィキの管理者に連絡
    • 運営会社に連絡する(不具合、障害など)
  • atwiki
  • kohei-hasegawa @ ウィキ
  • トップページ
  • Python講習
  • Numpyの関数を知ろう

kohei-hasegawa @ ウィキ

Numpyの関数を知ろう

最終更新:2020年05月14日 20:09

kohei-hasegawa

- view
メンバー限定 登録/ログイン

4-4.Numpyの関数を知ろう

Numpyの関数を使いこなすのに大事なことは関数の存在を知ることです.コラム:車輪の再発明にあったように自分がこれからしようとしている計算過程は必ず他の先人も試そうとしていて,誰かがNumpyでできるように関数化しているのではないかと考えましょう.Numpyの関数が準備されていればこれからコードを書く必要もありませんし,関数名から動作を推察できますので可読性もupします.ここでは,Numpyの関数のみならずNumpyと相性の良い標準装備関数の組み合わせやNumpyの型変換なども説明します.

(1) これまで使用した関数

np.where(condition[, x, y])
条件conditionがTrueならxをFalseならyを適用します.xとyを指定しない場合,条件を満たす配列の要素番号を返します.

>>> a = np.array ([1,2,3,4,5])
>>> np.where(a >=3)
(array([2,3,4]),dtype=int32)

>>> b = np.where(a >=3)
>>> b[0]
[2,3,4]

>>> a = np.array ([1,2,3,4,5])
>>> np.where(a >=3)
(array([2,3,4]),dtype=int32)
>>> b = np.where(a >=3)
>>> b[0]
[2,3,4]

>>> a = np.random.randint(0,10,(5,3))
[[6 6 1]
 [3 3 7]
 [1 3 9]
 [8 2 9]
 [6 7 5]]
>>> np.where(a == 9)
(array([2, 3], dtype=int32), array([2, 2], dtype=int32))

>>> a = np.random.randint(0,10,(5,3))
>>> b,c = np.where(a == 9) #切り出し
>>> print(b,c) 
[2 3] [2 2]
>>> for i,j in zip(b,c):
>>> :print(i,j)

2,2 #二行二列目
3,2 #三行二列目

ndarrayの各要素(数値)に対して条件分岐を適用した場合に多用します.組み込み関数であるzip()との相性が非常に良いです.多次元配列の場合は行データと列データが別々のarrayで出てくるので注意が必要です.

np.full(shape, (fill_value))
指定した fill_valueで満たされた大きさがshapeの配列を生成します.


np.empty(shape)
ランダムな値で満たされた大きさがshapeの配列を生成します.多次元の場合はshapeを(x,y,z…)と書きます.

np.darray.dtype
指定したnp.darrayの型を返します.なお,darrayのdは次元数(Dimension)を表します.

np.zeros(shape , dtype = float…)
0で初期化された大きさshapeのndarrayを生成します.ndarrayの型dtypeのデフォルトは浮動小数点float64です.dtype = int8とした場合は最大八桁が格納できる整数型になります.

np.ones(shape , dtype = float…)
1で初期化された大きさshapeのndarrayを生成します.

np.savetxt(fname,X,delimiter...)
delimiterで区切られた対象の配列Xを fnameとして保存します.

np.loadtxt(fname...)
指定したcsvファイルからデータをndarrayに格納します.



(2) 数学系

np.log(X…)
指定したndarrayであるXの対数を返します.np.log10やnp.log2などの親戚も.

np.power(X,Y…)
指定したndarrayであるXのY乗を返します.


>>> a = range(0,5)
>>> np.power(a,2) #broadcasting
[0,1,4,9,16]

>>> b = range(0,5)
>>> np.power(a,b)
[1,1,4,27,256]

np.exp(X,…)
指定したndarrayである X について自然対数eを基底にした指数を返します.

np.reciprocal(X,…)
指定したndarrayであるXについて逆数を返します.
Xがint型の場合は正常に機能しないため,予め Xの型をfloatに変更する必要があります.


(3) 四捨五入系

np.floor(X…)
指定したndarrayであるXの小数点以下を切り捨て,値の小さい方の整数にします.これは数学の床関数に相当します.

np.trunc(X…)
指定したndarrayであるXの小数点以下を切り捨てます.

np.ceil(X…)
指定したndarrayであるXの小数点以下を切り捨て,値の大きい方の整数にします.これは数学の天井関数に相当します.

np.round(X, decimal = 0…)
指定したndarrayであるXを四捨五入します.
decimalを指定することで四捨五入する桁数を決めることが出来ます.

np.fix(X…)
指定したndarrayであるXについて,0に近い方向の整数をとります.

np.abs(X…) or np.absolute(X…)
指定したndarrayであるXの絶対値を返します.

(4) 新規生成系

np.copy(X…)
指定したndarrayであるXについて,深いコピーを生成します.

X.view( dtype = None…)
指定したndarrayであるXについて,浅いコピーを生成します.


>>> a = np.array(range(0,5))
>>> b = np.copy(a)
>>> b
[0 1 2 3 4]
>>> b[2] = 10
>>> b
[0 1 10 3 4]
>>> a
[0 1 2 3 4]

>>> a = np.array(range(0,5))
>>> b = a.view()
>>> print(b)
[0 1 2 3 4]
>>> b[2] = 10
>>> b
[0 1 &bold(){10} 3 4]
>>> a
[0 1 10 3 4]

copyは新たにメモリースペースを確保して配列をコピーします..viewは配列名は違えど,参照しているメモリ領域は同期されているいわばショートカットです.従って,viewで複製した新規配列の内容を変えると,コピー元の内容も変更されます.しかし,新規にメモリースペースを確保する必要がないのでメモリ効率の改善に役立ちます.A = Bという記法は浅いコピーなので注意しましょう.

>>> np.linspace(2.0, 3.0, num=5)
array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ])
>>> np.linspace(2.0, 3.0, num=5, endpoint=False)
array([ 2. ,  2.2,  2.4,  2.6,  2.8])
>>> np.linspace(2.0, 3.0, num=5, retstep=True)
(array([ 2.  ,  2.25,  2.5 ,  2.75,  3.  ]), 0.25)


np.arange([start, ]stop[,step][,dtype = None])
標準関数であるrange()のnumpy版.[start,end)の範囲で連番の整数を生成します.公差stepの等差数列も作成できます.

np.linspace(start, stop, [num = 50,] [endpoint = True,] [retstep = False,] [dtype = None])
startからendの範囲でnum等分されたndarrayを返します.
numは生成する配列の要素数を示しています.デフォルトは50です.
endpointはstopを要素に含めるかどうかを指定します.デフォルトはTrue=含めるです.
retstepは公差を表示するかどうかを指定します.デフォルトはFalse=表示しないです.

>>> a = np.array([[0,10,5,9,0],[0,12,0,6,8]]) #2行5列
>>> a.max()
12
>>> a.max(axis=0) #行方向(縦)の最大値
0,12,5,9,8
>>> a.max(axis=1) #列方向(横)の最大値
10,12

(5) 参照系

np. max(X[,axis = None]…) or X.max()
ndarrayであるXの最大値を返します.X.max()という簡易記法も可能.
axis =以後に軸に対応した数値を入れることで軸方向の最大値を出力します(0=行,1=列).

np.min(X[,axis = None]…) or X.min()
ndarrayであるXの最小値を返します.X.min()という簡易記法も可能.

np.sum(X[,axis = None]…) or X.sum()
ndarrayであるXの合計値を返します.X.sum()という簡易記法も可能.

np.argmax(X[,axis = None]…) or X.argmax()
ndarrayであるXの最大値の要素番号を一次元ベースで返します.
数学でも arg maxという記述方法があります.


>>> a = np.array([[0,10,5,9,0],[0,12,0,6,8]]) #2行5列
>>> argmax(a)
6
#行列番号ではなく,flattenされた1d-arrayとしての番号が返される.

>>> a = np.array([0,1,20,0,6,20]) 
>>> argmax(a)
2
#最大値が複数ある場合は最初の出現が優先される

>>> argmax(a,axis = 0)
0,1,0,0,1
>>> argmax(a,axis = 1)
1,1


np.unravel_index(indices,dim…)
一次元ベースで数えた場合の要素番号(indices)を形状dimの多次元形式で見た場合の要素番号を多次元形式で返します.


>>> a = np.array([[0,10,5,9,0],[0,12,0,6,8]]) #2行5列
>>> index = np.argmax(a) #No.6
>>> dimension = a.shape #行列数の取得
>>> print(dimension)
(2,5)
>>> np.unravel_index(index,dimension)
(1,1)
#一行一列目に最大値(12)がある


np.argmin(X[,axis = None]…) or X.argmin()
ndarrayであるXの最小値の要素番号を一次元ベースで返します.

np.nonzero(X)
非ゼロ要素のあるインデックスを軸ごとに1次元配列にして返します.


>>> a = np.array([[0,10,5,9,0],[0,12,0,6,8]]) #2行5列
>>> np.nonzero(a)
(array([0, 0, 0, 1, 1, 1], dtype=int32), array([1, 2, 3, 1, 3, 4], dtype=int32))
>>> b,c = np.nonzero(a) #各軸ごとの要素を別々に取得
>>> print(b,c)
[0 0 0 1 1 1] [1 2 3 1 3 4]
>>> print(list(zip(b,c))
[(0, 1), (0, 2), (0, 3), (1, 1), (1, 3), (1, 4)] #非ゼロ要素の要素番号がzipによって行列形式にまとまった.

(6) 整理整頓系

np.c_[X1[,X2]…]
Xを縦ベクトルに変換します(1d-arrayの場合).ndarrayが複数の場合は末尾に随時結合します.


>>> a = np.array([1,2,3])
a
[1 2 3]
>>> np.c_[a]
([[1],
     [2],
     [3]])
>>> print(np.c_[a].shape)
(3,1)

>>> a = np.array([1,2,3])
>>> b = np.array([4,5,6])
>>> print(a,b)
[1 2 3] [4 5 6]
>>> np.c_[a,b]
([[1, 4],
    [2, 5],
    [3, 6]])
>>> print(np.c_[a].shape)
(3,2)


np.vstack(X1[,X2]…)
複数のndarrayを垂直(vertical)方向に結合します

np.hstack(X1[,X2]…)
複数のndarrayを水平(horizontal)方向に結合します

X.reshape or np.reshape(X,newshape)
複数のndarrayをnewshapeに沿って変形します

X.flatten
多次元配列Xを一次元に変換します

np.clip(X, min,max…)
Xの要素xをmin≤x≤maxの範囲に収めます


>>> a = np.arange(10)
>>> np.clip(a, 1, 8)
array([1, 1, 2, 3, 4, 5, 6, 7, 8, 8])

>>> a = np.array([[1,2,3],[4,5,6],[7,8,9]])
>>> b = np.array([[10,20,30],[40,50,60],[70,80,90]])
>>> np.vstack((a,b))
array([[ 1,  2,  3],
          [ 4,  5,  6],
          [ 7,  8,  9],
          [10, 20, 30],
          [40, 50, 60],
          [70, 80, 90]])
>>> np.vstack((a,b)).flatten
array([ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 20, 30, 40, 50, 60, 70, 80, 90])

>>> np.hstack((a,b))
array([[ 1,  2,  3, 10, 20, 30],
          [ 4,  5,  6, 40, 50, 60],
          [ 7,  8,  9, 70, 80, 90]])
>>> np.hstack((a,b)).reshape(6,3)
array([[ 1,  2,  3],
         [ 4,  5,  6],
         [ 7,  8,  9],
         [10, 20, 30],
         [40, 50, 60],
         [70, 80, 90]])


np.sort(X, axis = None…)
Xの要素を小さい順に並び替えます.
後に説明するスライスと合わせることでTop10やWorst5が選択できます.

np.argsort(X, axis = None…)
Xの要素のを小さい順に並び替えた場合の要素番号を取得します.


>>> a = np.arange(10,0,-1)
>>> print(a)
[10  9  8  7  6  5  4  3  2  1]
>>>np.sort(a)
[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10]
>>> np.argsort(a)
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> b = np.arange(0,10,1)
>>> c = np.vstack((a,b))
c
[[10  9  8  7  6  5  4  3  2  1]
    [ 0  1  2  3  4  5  6  7  8  9]]
>>> np.sort(c,axis = 0) #行方向
[[ 0,  1,  2,  3,  4,  5,  4,  3,  2,  1],
    [10,  9,  8,  7,  6,  5,  6,  7,  8,  9]]
>>> np.sort(c,axis = 1) #列方向
[[ 1,  2,  3,  4,  5,  6,  7,  8,  9, 10],
    [ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9]]

(7) 乱数系(np.random.)
このライブラリはnp.関数名だけではなく,np.random.関数名とrandomクラスへのアクセスが必要となります.あるいは,from numpy import randomによりnumpyのrandomクラスのみの使用を指定することでnp.を省略したrandom.関数名という表記が出来ます.

np.random.rand(shape)
指定したshapeに沿って[0,1)の範囲で乱数を生成します.

{np.random.randint(low, high=None[, size=None]…)
}指定したsizeに沿って[low,high)の範囲で整数の乱数を生成します.

>>> np.random.randint(0,5,10)
[4, 2, 0, 0, 1, 2, 1, 1, 3, 1]
#0≤x<5の範囲で生成している[0,5)
>>> [random.randint(0,5) for i in range(10)] #リスト内包表記,リストの中にfor文
[0, 5, 3, 5, 4, 3, 2, 4, 5, 5]
#0≤x≤5の範囲で生成している[0,5]
#同じrandintでもnumpyと標準装備関数では生成範囲が違うので注意しよう


np.random.randint(low, high=None[, size=None]…)
指定したsizeに沿って[low,high)の範囲で整数の乱数を生成します.

np.random.randn([size = None]…)
指定したsizeの乱数を標準正規分布N(0,1)に沿って生成します.

{np.random.normal(loc=0.0, scale=1.0[, size=None])
}指定したsizeの乱数を正規分布N(loc,scale)に沿って生成します.

np.random.seed(a = None [,integer])
aが省略された場合には現在のシステム時刻を基礎に乱数生成器を初期化します.
整数Integerが使用された場合,Integerに沿った乱数が生成されます.

numpy.random.choice(a[, size=None][, replace=True][, p=None])
a = 整数:range(0,a)の範囲でランダムに整数を生成します
a = 一次元配列:配列内の要素をランダムに生成.それぞれの生成確率は対応する確率リストpによる指定が可能です.
replaceは重複要素を許容するかどうかを指定します.デフォルトはTrue=許容する.


>>> from numpy import random
>>> random.choice(5,5)
[0, 0, 2, 1, 3]
>>> a = [0,5,10,15,20]
>>> random.choice(a, 10)
[20,  5,  5,  5, 15, 10,  0, 10, 10, 15]
>>> a = [“a”,”b”,”c”,”d”,”e”]
>>> random.choice(a, 10)
array(['c', 'a', 'b', 'c', 'c', 'a', 'a', 'b', 'b', 'c'], dtype='<U1')

>>> a = [0,5,10,15,20]
>>> p = [0.2, 0.5, 0.1, 0.1, 0.1]
>>> random.choice(a, 10, p=p)
[ 0, 20,  5,  5, 20,  5,  0,  0,  5,  5]


np.random.poisson (lam=1.0, size=None)
ポアソン分布に沿って自然数を発生させます.
lamは平均であり,lamdaの略です.ポアソン分布の定式化では,平均をλとする慣習があります.
sizeは発生させる乱数の大きさを指定します.リスト( )で括れば多次元配列が作れます.


>>> From numpy.random import poisson
>>> poisson( )  #平均1.0,サイズ1
2
>>> poisson( )
0
>>> poisson(0.5,10)
array([0, 0, 1, 0, 0, 1, 2, 0, 1, 0])
>>> poisson(2,10)
array([3, 3, 0, 2, 0, 1, 0, 3, 1, 3])

他にも正規分布や対数正規分布など各種の分布系が用意されています.確率密度や信頼/予想区間はnumpyの発展版であるscipyというライブラリに実装されており,これを使う機会もきっとあることでしょう.

演算系


np.prod(a[, axis=None]…)
指定したndarrayの総積⊓を返します.axisを指定することで特定の軸方向のみの計算が可能.

np.cumsum(a[, axis=None]…)
指定したndarrayの累積和a_0,a_0+a_1,a_0+a_1+a_2⋯を返します.


>>> np.cumsum(range(0,5))
[ 0,  1,  3,  6, 10]
>>> np.cumsum([range(0,5),range(0,5)]) #二次元配列
[ 0,  1,  3,  6, 10, 10, 11, 13, 16, 20] #一次元ベースで累積される
>>> np.cumsum([range(0,5),range(0,5)],axis=0)
[[0, 1, 2, 3, 4],
    [0, 2, 4, 6, 8]] #行方向(上から下へ累積されている)

np.cumprod(a[, axis=None]…)
指定したndarrayの累積積a_0,a_0×a_1,a_0×a_1×a_2⋯を返します.


(9) 集合系


np.unique(X[, axis=None][,return_index=False][, return_counts=False]…)
指定したndarrayから重複要素を取り除いた集合Aを作成します.return_indexを指定することでユニーク要素の初出要素番号を出力します.デフォルトはFalse=表示しない. return_countsを指定することでユニーク要素の出現回数を出力します.


>>> np.unique([1, 1, 2, 2, 3, 3])
array([1, 2, 3])  #重複要素の削除

>>> np.unique(['a', 'b', 'b', 'c', 'a'], return_index=True)
(array(['a', 'b', 'c'], dtype='<U1'), array([0, 1, 3], dtype=int32))
#各オリジナル要素の初出要素番号の出力

>>> np.unique(['a', 'b', 'b', 'c', 'a'], return_counts=True)
(array(['a', 'b', 'c'], dtype='<U1'), array([2, 2, 1]))
#各オリジナル要素の出現回数のカウント

>>> a = np.array([[1, 0, 0], [1, 0, 0], [2, 3, 4]])
>>> np.unique(a, axis=0)
array([[1, 0, 0], [2, 3, 4]]) #axisオプションも使える
>>> np.unique(['b', 'a', 'b', 'c', 'a'])
array(['a', 'b', 'c'], dtype='<U1')
#集合系関数は順番を並び替えて[a,b,c]や[1,2,3]のようにソート出力するので注意


np.in1d(X1,X2[,invert=False]…)
1番目の引数X1の配列の各要素が、2番目の引数X2の配列に含まれるかどうかの真偽値(bool型)を返します.invertによって出力されるbool型を逆にできます.


>>> test = np.array([0, 1, 2, 5, 0])
>>> states = [0, 2]
>>> np.in1d(test, states)
array([ True, False,True, False,True], dtype=bool)
>>> np.in1d(test, states,invert = True)
array([False,  True, False,  True, False]) #FalseとTrueが逆になっている


np.intersect1d(X1,X2…)
1番目の引数X1と2番目の引数X2の共通要素を抜き出したX_1∩X_2を出力します.
高級関数のfunctool.reduceを使えば多次元配列にも適用可能です


>>> np.intersect1d([6,5,4,3], [1,2,3,4])
[3,4]
>>> from functools import reduce
>>> reduce(np.intersect1d, ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2]))
array([3])
>>> a = [[1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2]]
>>> reduce(np.intersect1d,a)
array([3]) #多次元listも対応している


[functools.reduceは一体何をしているのか?]
functools.reduceは関数を引数とする高級関数の一つです.np.intersect1dのように引数X1とX2という2つの引数を使用する関数の繰り返しに効果を発揮します.intersect1dはnp.intersect1d([6,5,4,3], [1,2,3,4])のように使用するため,引数が3つになるとエラーとなります.例えば,[1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2]という3つのリストがあり,それらの共通要素を出力させたいときには以下のように書かなくてはなりません.


>>> result1 = np.intersect1d([1, 3, 4, 3], [3, 1, 2, 1])
>>> result2 = np.intersect1d(result1, [6, 3, 4, 2])
>>> result2
array([3])

これはやや面倒です.functools.reduceは対象のリストを全て引数にしてこの繰り返しを省略してくれます.ただし,様々なリストを比較する際には引数として入力する変数が reduce(np.intersect1d, ([1, 3, 4, 3], [3, 1, 2, 1], [6, 3, 4, 2], [5.6…))のように非常に多くなってしまいます.functools.reduceは多次元リストにも対応が可能であり,リストをaとするとResult1 = 0行目と1行目の比較,Result2 = Result1と2行目の比較…という動作を自動で行ってくれます.こうすれば,多次元配列をaとして,reduce(np.intersect1d,a)という見やすい書き方ができるようになります.


np.setdiff1d(X1,X2[, assume_unique=False]…)
1番目の引数X1から2番目の引数X2と共通する要素を除外した集合を生成します.
assume_uniqueオプションで出力結果のソート有無と重複まとめの有無を選択できます.


>>> a = np.array([1, 2, 3, 2, 4, 1])
>>> b = np.array([3, 4, 5, 6])
>>> np.setdiff1d(a, b)
array([1, 2])

>>> np.setdiff1d(a, b, assume_unique…)
array([1, 2, 2, 1])
#重複部分がまとめられず,元のArrayにおける出現順序を踏襲している


np.setxor1d(X1,X2[, assume_unique=False]…)
1番目の引数X1と2番目の引数X2で共通する要素X_1∩X_2を除外した(X_1∩X_2 ) ̅を生成します.
assume_uniqueオプションで出力結果のソート有無と重複まとめの有無を選択できます.


>>> a = np.array([1, 2, 3, 2, 4, 1])
>>> b = np.array([3, 4, 5, 6])
>>> np.setdiff1d(a, b)
array([1, 2])
#aにあってbにない要素

>>> a = np.array([1, 2, 3, 2, 4, 1])
>>> b = np.array([3, 4, 5, 6])
>>> np.setor1d(a, b)
array([1, 2, 5, 6])
#aあるいは(or)bだけにあるもの


np.union1d(X1,X2)
1番目の引数X1と2番目の引数X2の要素を合わせたものを返します.



次へ
「Numpyの関数を知ろう」をウィキ内検索
LINE
シェア
Tweet
kohei-hasegawa @ ウィキ
記事メニュー
メニューを編集

メニュー

トップページ
  • 体裁全般
    • 図表
    • 引用
    • 数式
    • 文章表現
    • ソースコード
  • Officeテンプレ
  • Office Tips
  • 仕事Tips
  • 研究Tips
    • 文献レビュー
    • プレゼンの作り方
    • タスクスケジューラのすゝめ
  • 学位論文
    • 卒業論文
    • 修士論文
    • 博士論文
    • よく使う図表
  • 雑務Tips
    • プレゼン発表練習会
    • M1中間ポスター発表
    • 年度末大掃除
    • D論公聴会
    • 新歓BBQ
    • ソウル東京
    • 製本機の使い方
    • コピー機の使い方
    • 研究室紹介
  • 英語関係
    • 校正全般
    • 自己紹介(Biography)
    • 校正業者の活用方法
    • 英語プレゼン
    • 使えそうな例文
  • 論文執筆
    • タイトル
    • アブストラクト
    • 結果と考察
  • 勉強会
  • Python講習
  • 長谷川の遊び場
    • ダンピング対策状況マップ
    • Twitter拾い物
    • お引越しメモ
    • 本棚
    • 長谷川冒険記

Wiki編集方法

リンク

  • 長谷川のHP
  • 長谷川の予定



記事メニュー2

更新履歴

取得中です。

閲覧数ランキング(昨日)

  • トップページ/仕事Tips/国家公務員のためのマネジメントテキスト (1)
  • トップページ/Python講習/Excelにはできない体裁のグラフ (1)

閲覧数ランキング(累計)

  • トップページ (4243)
  • トップページ/Python講習 (802)
  • トップページ/雑務Tips/D論公聴会 (577)
  • トップページ/学位論文/博士論文 (477)
  • トップページ/Python講習/オブジェクト指向で体裁を整える (386)
  • トップページ/体裁全般/文章表現 (368)
  • トップページ/長谷川の遊び場/本棚 (340)
  • トップページ/勉強会 (286)
  • トップページ/Office Tips (248)
  • トップページ/雑務Tips/年度末大掃除 (234)


ここを編集
人気記事ランキング
  1. トップページ/Python講習/自作関数とライブラリを作ってみよう
  2. トップページ/Python講習/1章まとめ
  3. トップページ/Python講習/関数リスト
  4. トップページ/Python講習/関数を使ってみよう
  5. トップページ/Python講習/Pythonに触れてみよう
もっと見る
最近更新されたページ
  • 80日前

    トップページ/長谷川の遊び場/本棚
  • 337日前

    トップページ/長谷川の遊び場/長谷川冒険記
  • 397日前

    トップページ/長谷川の遊び場/Twitter拾い物
  • 879日前

    トップページ/体裁全般/文章表現
  • 945日前

    トップページ/Office Tips
  • 1088日前

    トップページ/Python講習
  • 1225日前

    トップページ/仕事Tips/国家公務員のためのマネジメントテキスト
  • 1260日前

    トップページ/仕事Tips
  • 1285日前

    メニュー
  • 1285日前

    トップページ/長谷川の遊び場
もっと見る
人気記事ランキング
  1. トップページ/Python講習/自作関数とライブラリを作ってみよう
  2. トップページ/Python講習/1章まとめ
  3. トップページ/Python講習/関数リスト
  4. トップページ/Python講習/関数を使ってみよう
  5. トップページ/Python講習/Pythonに触れてみよう
もっと見る
最近更新されたページ
  • 80日前

    トップページ/長谷川の遊び場/本棚
  • 337日前

    トップページ/長谷川の遊び場/長谷川冒険記
  • 397日前

    トップページ/長谷川の遊び場/Twitter拾い物
  • 879日前

    トップページ/体裁全般/文章表現
  • 945日前

    トップページ/Office Tips
  • 1088日前

    トップページ/Python講習
  • 1225日前

    トップページ/仕事Tips/国家公務員のためのマネジメントテキスト
  • 1260日前

    トップページ/仕事Tips
  • 1285日前

    メニュー
  • 1285日前

    トップページ/長谷川の遊び場
もっと見る
ウィキ募集バナー
新規Wikiランキング

最近作成されたWikiのアクセスランキングです。見るだけでなく加筆してみよう!

  1. MadTown GTA (Beta) まとめウィキ
  2. GTA5 MADTOWN(β)まとめウィキ
  3. R.E.P.O. 日本語解説Wiki
  4. シュガードール情報まとめウィキ
  5. SYNDUALITY Echo of Ada 攻略 ウィキ
  6. ガンダムGQuuuuuuX 乃木坂46部@wiki
  7. ドタバタ王子くん攻略サイト
  8. ありふれた職業で世界最強 リベリオンソウル @ ウィキ
  9. パズル&コンクエスト(Puzzles&Conquest)攻略Wiki
  10. MADTOWN @ ウィキ
もっと見る
人気Wikiランキング

atwikiでよく見られているWikiのランキングです。新しい情報を発見してみよう!

  1. アニヲタWiki(仮)
  2. ストグラ まとめ @ウィキ
  3. 機動戦士ガンダム バトルオペレーション2攻略Wiki 3rd Season
  4. ゲームカタログ@Wiki ~名作からクソゲーまで~
  5. 初音ミク Wiki
  6. 検索してはいけない言葉 @ ウィキ
  7. Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  8. 発車メロディーwiki
  9. 英傑大戦wiki
  10. SDガンダム ジージェネレーションクロスレイズ 攻略Wiki
もっと見る
全体ページランキング

最近アクセスの多かったページランキングです。話題のページを見に行こう!

  1. 魔獣トゲイラ - バトルロイヤルR+α ファンフィクション(二次創作など)総合wiki
  2. 参加者一覧 - MadTown GTA (Beta) まとめウィキ
  3. 参加者一覧 - ストグラ まとめ @ウィキ
  4. 赤城ウェン - MadTown GTA (Beta) まとめウィキ
  5. Lycoris - MadTown GTA (Beta) まとめウィキ
  6. ぶんぶんギャング - MadTown GTA (Beta) まとめウィキ
  7. ランゴ・ストマック - アニヲタWiki(仮)
  8. 乗り物一覧 - Grand Theft Auto V(グランドセフトオート5)GTA5 & GTAオンライン 情報・攻略wiki
  9. R7高校総体北部支部予選 - 埼玉県高等学校バスケットボール北部支部
  10. 警察 - MadTown GTA (Beta) まとめウィキ
もっと見る

  • このWikiのTOPへ
  • 全ページ一覧
  • アットウィキTOP
  • 利用規約
  • プライバシーポリシー

2019 AtWiki, Inc.