rr)
[[1 2 3]
[4 5 6]
[7 8 9]]
#1. 获取numpy数组所有元素的中位数
print(np.median(arr))
5.0
#2. 获取numpy数组每一列的中位数
print(np.median(arr, axis=0))
[4. 5. 6.]
#3. 获取numpy数组每一行的中位数
print(np.median(arr, axis=1))
[2. 5. 8.]
6 numpy数组求和
arr = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
print(arr)
[[1 2 3]
[4 5 6]
[7 8 9]]
#1. 对numpy数组的每一个元素求和
print(arr.sum())
# 45
#2. 对numpy数组的每一列求和
print(arr.sum(axis=0))
# [12 15 18]
#3. 对numpy数组的每一行求和
print(arr.sum(axis=1))
# [ 6 15 24]
7 累加和
arr = np.array([1, 2, 3, 4, 5])
print(arr)
# [1 2 3 4 5]
# 第n个元素为前n-1个元素累加和
print(arr.cumsum())
# [ 1 3 6 10 15]
十四、numpy.random生成随机数
函数名称 |
函数功能 |
参数说明 |
rand(d0,d1,?,dnd0,d1,?,dn) |
产生均匀分布的随机数 |
dndn为第n维数据的维度 |
randn(d0,d1,?,dnd0,d1,?,dn) |
产生标准正态分布随机数 |
dndn为第n维数据的维度 |
randint(low[, high, size, dtype]) |
产生随机整数 low:最小值;high:最大值; |
size:数据个数 |
random_sample([size]) |
在[0,1)[0,1)内产生随机数 |
size为随机数的shape,可以为元祖或者列表 |
choice(a[, size]) |
从arr中随机选择指定数据 |
arr为1维数组;size为数组形状 |
uniform(low,high [,size]) |
给定形状产生随机数组 |
low为最小值;high为最大值,size为数组形状 |
shuffle(a) |
与random.shuffle相同 |
a为指定数组 |
#1. RandomState()方法会让数据值随机一次,之后都是相同的数据
rs = np.random.RandomState(1)
print(rs.rand(10))
[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01
1.46755891e-01 9.23385948e-02 1.86260211e-01 3.45560727e-01
3.96767474e-01 5.38816734e-01]
#2. 构造3*4的均匀分布的numpy数组
# seed()方法会让数据值随机一次,之后都是相同的数据
np.random.seed(1)
print(np.random.rand(3, 4))
[[4.17022005e-01 7.20324493e-01 1.14374817e-04 3.02332573e-01]
[1.46755891e-01 9.23385948e-02 1.86260211e-01 3.45560727e-01]
[3.96767474e-01 5.38816734e-01 4.19194514e-01 6.85219500e-01]]
#3. 构造3*4*5的均匀分布的numpy数组
print(np.random.rand(3, 4, 5))
[[[0.20445225 0.87811744 0.02738759 0.67046751 0.4173048 ]
[0.55868983 0.14038694 0.19810149 0.80074457 0.96826158]
[0.31342418 0.69232262 0.87638915 0.89460666 0.08504421]
[0.03905478 0.16983042 0.8781425 0.09834683 0.42110763]]
[[0.95788953 0.53316528 0.69187711 0.31551563 0.68650093]
[0.83462567 0.01828828 0.75014431 0.98886109 0.74816565]
[0.28044399 0.78927933 0.10322601 0.44789353 0.9085955 ]
[0.29361415 0.28777534 0.13002857 0.01936696 0.67883553]]
[[0.21162812 0.26554666 0.49157316 0.05336255 0.57411761]
[0.14672857 0.58930554 0.69975836 0.10233443 0.41405599]
[0.69440016 0.41417927 0.04995346 0.53589641 0.66379465]
[0.51488911 0.94459476 0.58655504 0.90340192 0.1374747 ]]]
#4. 构造3*4的正态分布的numpy数组
print(np.random.randn(3, 4))
[[ 0.30017032 -0.35224985 -1.1425182 -0.34934272]
[-0.20889423 0.58662319 0.83898341 0.93110208]
[ 0.28558733 0.88514116 -0.75439794 1.25286816]]
#5. 构造取值为1-5内的10个元素的ndarray数组
print(np.random.randint(1, 5, 10))
[1 1 1 2 3 1 2 1 3 4]
#6. 构造取值为0-1内的3*4的numpy数组
print(np.random.random_sample((3, 4)))
[[0.62169572 0.11474597 0.94948926 0.44991213]
[0.57838961 0.4081368 0.23702698 0.90337952]
[0.57367949 0.00287033 0.61714491 0.3266449 ]]
#7. 随机选取arr中的两个元素
arr = np.array([1, 2, 3])
print(np.random.choice(arr, size=2))
[1 3]
arr = np.random.uniform(1, 5, (2, 3))
print(arr)
[[4.72405173 3.30633687 4.35858086]
[3.49316845 2.29806999 3.91204657]]
np.random.shuffle(arr)
print(arr)
[[3.49316845 2.29806999 3.91204657]
[4.72405173 3.30633687 4.35858086]]