numpy數組(5)-二維數組的軸
阿新 • • 發佈:2018-06-28
AR pre 我們 作用 arr ati class span spa
numpy的mean(),std()等方法是作用於整個numpy數組的,如果是二維數組的話,也是整個數組,包括所有行和列,但我們經常需要它僅作用於行或者列,而不是整個二維數組,這個時候,可以定義軸axis:
axis=0表示作用於列
axis=1表示作用於行
以sum()求和方法為例:
import numpy as np a = np.array([ [1, 2, 3], [4, 5, 6], [7, 8, 9] ]) print a.sum() # 45 print a.sum(axis=0)
# 表示對各個列求和 # [12 15 18] print a.sum(axis=1)
# 表示對各個行求和# [6 15 24]
一個綜合栗子:
# 假設有如下5個地鐵站10天的客流數據 ridership = np.array([ [ 0, 0, 2, 5, 0], [1478, 3877, 3674, 2328, 2539], [1613, 4088, 3991, 6461, 2691], [1560, 3392, 3826, 4787, 2613], [1608, 4802, 3932, 4477, 2705], [1576, 3933, 3909, 4979, 2685], [ 95, 229, 255, 496, 201], [2, 0, 1, 27, 0], [1438, 3785, 3589, 4174, 2215], [1342, 4043, 4009, 4665, 3033] ])
首先計算各個車站每天的客流平均值,從中找出最大和最小值:
def min_and_max_riders_per_day(ridership): mean_ridership_per_station = ridership.mean(axis=0) max_daily_ridership = mean_ridership_per_station.max() min_daily_ridership= mean_ridership_per_station.min() return (max_daily_ridership, min_daily_ridership) print(min_and_max_riders_per_day(ridership)) # 結果 (3239.9, 1071.2)
numpy數組(5)-二維數組的軸