数组的大小(元素个数)
array.size
数组的维度
array.ndim
数组元素的数据类型
array.dtype
数组的形状
array.shape
数组中每个元素占用的内存空间
array.itemsize
数组所有元素占用的内存空间(字节)
array.nbytes
数组转置
array.T
数组的形状
array.shape
# 普通索引 - index
array15 = np.random.randint(0, 100, 10)
array15
array([51, 52, 46, 4, 58, 55, 40, 98, 75, 3])
array15[0] = 100
array15
array([100, 52, 46, 4, 58, 55, 40, 98, 75, 3])
array15[-1] = 200
array15
array([100, 52, 46, 4, 58, 55, 40, 98, 75, 200])
# 花式索引 - fancy index
array15[[1, 2, 5, 1, 1, -1]]
array([ 52, 46, 55, 52, 52, 200])
array16 = np.arange(1, 10).reshape((3, 3))
array16
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
array16[1]
array([4, 5, 6])
array16[1][1]
5
二维数组的索引运算
# 二维数组的索引运算
array16[1, 1]
5
array16[-1, 1]
8
# 二维数组的花式索引
array16[[0, 1, 1, 2], [0, 1, 2, 0]]
array([1, 5, 6, 7])
array16[[0, 1, 1, 2]]
array([[1, 2, 3],
[4, 5, 6],
[4, 5, 6],
[7, 8, 9]])
# 布尔索引 - 用放布尔类型的数组或列表充当索引 - True对应的元素保留,False对应的元素去除
array15[[True, False, False, True, False, True, True, False, False, False]]
array([100, 4, 55, 40])
array15 > 50
array([ True, True, False, False, True, True, False, True, True,
True])
array15[array15 > 50]
array([100, 52, 58, 55, 98, 75, 200])
array15 % 2 != 0
array([False, False, False, False, False, True, False, False, True,
False])
array15[array15 % 2 != 0]
array([55, 75])
(array15 > 50) & (array15 % 2 != 0)
array([False, False, False, False, False, True, False, False, True,
False])
array15[(array15 > 50) & (array15 % 2 != 0)]
array([55, 75])
array15[(array15 > 50) | (array15 % 2 != 0)]
array([100, 52, 58, 55, 98, 75, 200])
array15[(array15 > 50) & ~(array15 % 2 != 0)]
array([100, 52, 58, 98, 200])
array15[(array15 > 50) & (array15 % 2 == 0)]
array([100, 52, 58, 98, 200])
array16[array16 > 5]
array([6, 7, 8, 9])
# 切片索引
array15[1:5]
array([52, 46, 4, 58])
array15[1:5:2]
array([52, 4])
array15[-3:-8:-1]
array([98, 40, 55, 58, 4])
array16
array([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]])
array16[:2, 1:]
array([[2, 3],
[5, 6]])
array16[2]
array([7, 8, 9])
array16[2, :]
array([7, 8, 9])
array16[2:, :]
array([[7, 8, 9]])
array16[::2, ::2]
array([[1, 3],
[7, 9]])
源数据
array17 = np.random.randint(200, 500, 12)
array([351, 293, 272, 284, 243, 339, 461, 322, 214, 429, 339, 439])
# 和
array17.sum()
3986
np.sum(array17)
3986
# 算术平均
array17.mean()
332.1666666666667
np.mean(array17)
332.1666666666667
# 中位数
np.median(array17)
330.5
np.quantile(array17, 0.5)
330.5
# 最大值
array17.max()
461
np.amax(array17)
461
# 最小值
array17.min()
214
np.amin(array17)
214
# 极差(peak-to-peak)
array17.ptp()
247
np.ptp(array17)
247
# IQR(四分位距离)
q1, q3 = np.quantile(array17, [0.25, 0.75])
iqr = q3 - q1
iqr
# IQR(四分位距离)
q1, q3 = np.quantile(array17, [0.25, 0.75])
iqr = q3 - q1
iqr
89.5
# 方差
array17.var()
5610.63888888889
np.var(array17)
5610.63888888889
# 标准差
array17.std()
74.90419807253055
np.std(array17)
74.90419807253055
# 累积和(cumulative sum)
array17.cumsum()
array([ 351, 644, 916, 1200, 1443, 1782, 2243, 2565, 2779, 3208, 3547,
3986])
array19 = np.array([1, 0, 2, 3, 0, 0, 4, 5])
array19
array([1, 0, 2, 3,