Numpy 的 quantile(~)
方法返回指定分位數處的插值。請注意,此方法與 percentile(~)
完全相同,隻是 quantile(~)
方法采用 0 到 1 之間的值,而不是 0 到 100。
參數
1. a
| array-like
輸入數組。
2. q
| array-like
共 float
要計算的所需分位數,必須介於 0(含)和 1(含)之間。
3. axis
| None
或 int
| optional
計算百分位數所沿的軸。對於二維數組,允許的值如下:
軸 |
意義 |
---|---|
0 |
按列計算分位數 |
1 |
按行計算分位數 |
None |
計算展平輸入數組的百分位 |
默認情況下,axis=None
。
4. out
| Numpy array
| optional
您可以將計算結果放入 out
指定的數組中,而不是創建新數組。
5. overwrite_input
| boolean
| optional
是否將中間計算保存到輸入數組a
。這會節省內存空間,但也會使 a
的內容未定義。默認情況下,overwrite_input=False
。
6. interpolation
| string
| optional
當給定百分位數位於兩個 data-points 之間時,如何對值進行插值,例如 i
和 j
,其中 i<j
:
值 |
意義 |
---|---|
linear |
標準線性插補 |
lower |
返回 |
higher |
返回 |
midpoint |
返回 |
nearest |
返回 |
默認情況下,interpolation="linear"
。
返回值
如果 q
是標量,則返回標量。否則,返回一個 Numpy 數組。
例子
計算單個百分位數
要獲取 0.5 分位數處的值:
a = np.array([5,6,7,8,9])
np.quantile(a, 0.5)
7.0
計算多個百分位數
要獲取第 50 個和第 75 個百分位數的值:
a = np.array([5,6,7,8,9])
np.quantile(a, [0.5, 0.75])
array([7., 8.])
更改插值方法
線性
考慮指定分位數對應的值不存在的情況:
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45) # interpolation="linear"
6.800000000000001
這裏,由於數組中不存在第 45 個百分位數對應的值,因此該值在 6 和 7 之間線性插值。
降低
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="lower")
6
同樣,由於 45% 分位數不存在,我們需要執行插值。我們知道它在值 6 和 7 之間。通過傳入 "lower"
,我們選擇較低的值,即本例中的 6。
更高
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="higher")
7
與 "lower"
相同的邏輯,但我們采用較高的值。
最近的
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="nearest")
7
通過傳入"nearest",我們不再總是選擇較低或較高的值,而是采用最接近的值。這裏,從 interpolation="linear"
的輸出來看,我們知道插值更接近 7 而不是 6。
中點
a = np.array([5,6,7,8,9])
np.quantile(a, 0.45, interpolation="midpoint")
6.5
在這裏,我們隻取下限值和上限值的中點,因此 (6+7)/2=6.5
。
相關用法
- Python queue.PriorityQueue用法及代碼示例
- Python Pandas qcut方法用法及代碼示例
- Python cudf.core.column.string.StringMethods.is_vowel用法及代碼示例
- Python NumPy fliplr方法用法及代碼示例
- Python torch.distributed.rpc.rpc_async用法及代碼示例
- Python torch.nn.InstanceNorm3d用法及代碼示例
- Python sklearn.cluster.MiniBatchKMeans用法及代碼示例
- Python pandas.arrays.IntervalArray.is_empty用法及代碼示例
- Python tf.compat.v1.distributions.Multinomial.stddev用法及代碼示例
- Python numpy.less()用法及代碼示例
- Python Matplotlib.figure.Figure.add_gridspec()用法及代碼示例
- Python tf.compat.v1.distribute.MirroredStrategy.experimental_distribute_dataset用法及代碼示例
- Python Django File.save用法及代碼示例
- Python NumPy squeeze方法用法及代碼示例
- Python Sympy Permutation.list()用法及代碼示例
- Python dask.dataframe.Series.apply用法及代碼示例
- Python networkx.algorithms.shortest_paths.weighted.all_pairs_dijkstra_path用法及代碼示例
- Python scipy.ndimage.binary_opening用法及代碼示例
- Python NumPy char find方法用法及代碼示例
- Python pyspark.pandas.Series.dropna用法及代碼示例
- Python torchaudio.transforms.Fade用法及代碼示例
- Python dask.dataframe.to_records用法及代碼示例
- Python arcgis.gis._impl._profile.ProfileManager.save_as用法及代碼示例
- Python pyspark.pandas.groupby.SeriesGroupBy.unique用法及代碼示例
- Python distributed.protocol.serialize.register_generic用法及代碼示例
注:本文由純淨天空篩選整理自Isshin Inada大神的英文原創作品 NumPy | quantile method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。