- 普遍的な機能とは何ですか
汎用関数(または略してufuncは )配列放送、型鋳造、および他のいくつかの標準機能をサポートして、要素ごとの様式でndarrays上で動作する関数である。つまり、ufuncには「ベクトル化」ラッパーでありますFiは特異的C入力の数と生成しFiは特異的C出力数をXED XEDとる関数
-ソース:numpy.org
-計算素子簡潔には、汎用関数がndarrayの操作を定義される元素であり
、Aがnumpyの存在重要な概念:ブロードキャスト(放送)、放送手段、形状は、基準の計算に関与する配列と異なることができるように:放送
- いくつかの単純なプロパティufunc
- ニン入力データ数:
- NOUT出力の数:
- NARGS:引数の数。オプションのものも含めufuncが取る引数の数を含むデータ属性。
- ntypes:数値numpyの種類の数- ufuncが動作可能に- 18合計がありそのうち
- タイプ:入力-グループ化タイプ>出力のリストを返します。データ型「ドメイン範囲」ufuncが提供できるグループを一覧表示するデータ属性。データ型は、文字コードを使用して与えられています
- アイデンティティ:それは1を持っている場合は、データの属性は、ufuncのID要素を含みます。そうでない場合は、属性値はNoneです。
- 署名:各INPUT /配列の次元での署名でどのように決定するかは、出力の分割コアとループの次元にある
ヒント:コールufunc .__ doc__内の例題は、関数のドキュメントを表示することができます
例えば
print(np.multiply.__doc__)
- ufunc方法(メソッド):
我々の関数以下add.reduceに説明するための例として、
- ufunc.reduceの
使用法:減らす(軸、初期 、keepdims)
参照減らす
Aは、入力の行列である
(デフォルトは0である)の計算に関与している軸寸法
、例えば:
import numpy as np
a=np.arange(9).reshape(3,3)
print(a)
# [[0 1 2]
# [3 4 5]
# [6 7 8]]
#如果我们想把矩阵按行(axis=0)进行划分,把各行相加
b=np.add.reduce(a,axis=0)
print(b)
# [ 9 12 15]
結果は、操作が完了した後、可視、(3)形状の我々の見解Bは、軸= 0軸= 0ではないことが、もちろん、我々は変更したい場合、操作ndim前後の、(低減)が除去されていますkeepdimsオフ減らす= 1を達成することができます
b=np.add.reduce(a,axis=0,keepdims=1)
私たちは、バイアスた場合、最終的な解決策を取得したい場合は、その各要素は、Aプラス5の両方の結果であることを、あなたは、この最初のパラメータを呼び出すことができます
b=np.add.reduce(a,axis=0,keepdims=1,initial=5)
print(b)
#[[14 17 20]]
同様に、multiply.reduceとadd.reduceは非常に似ており、唯一の違いは、他の機能を減少させるために乗算に「和」であり、同様です。
- ufunc.accumulateは
同様に、我々は、例えばadd.accumulate
我々は行の行列(軸= 0)に分割されることを置く場合、我々が得た結果を見てどのようadd.accumulateあります
import numpy as np
a=np.arange(9).reshape(3,3)
print(a)
# [[0 1 2]
# [3 4 5]
# [6 7 8]]
#如果我们想吧矩阵按行(axis=0)进行划分,把各行相加
b=np.add.accumulate(a,axis=0)
print(b)
# [[ 0 1 2]
# [ 3 5 7]第一行+第二行
# [ 9 12 15]]第一行+第二行+第三行
- ufunc.outer
我々 add.outer Aケーススタディ
import numpy as np
a=np.array([1,2,3])
b=np.array([4,5,6])
print(np.add.outer(a,b))
# [[5 6 7]
# [6 7 8]
# [7 8 9]]
我々 3によって置換され3+、A 1 + 1は[4,5,6]で置換されているに、2 + 2は[4,5,6]で置換されている、発見した[4,5,6]
要約:add.outer(b)は結果として、素子形状とBとの各要素の交換に相当する(a.shape、B.SHAPE)