Python数据分析 知识量:13 - 56 - 232
使用NumPy的random模块可以创建随机数组。random模块包含多个函数可以创建不同的随机数组。
创建0~1之间的随机数组。可以使用rand()函数实现:
import numpy as np arr=np.random.rand(5) # 一维随机数组 print(arr) arr = np.random.rand(3,4) # 二维随机数组 print(arr)
运行结果为:
[0.46544494 0.62108366 0.71779838 0.94261459 0.33298433] [[0.68256465 0.01680971 0.67135205 0.94591189] [0.73568185 0.25613694 0.20121316 0.15291197] [0.20712644 0.92524952 0.10435183 0.13757869]]
如上所示,如果传递给rand()函数的参数是一对值,则创建的是指定行列数的数组。
可以使用randn()函数创建满足正态分布的数组。
import numpy as np arr=np.random.randn(5) print(arr) arr = np.random.randn(3,4) # 指定行列的二维数组 print(arr)
运行结果为:
[ 1.66049353 0.99395355 -0.87486944 -0.90558717 -0.54306976] [[-0.64591109 -0.48571158 0.42669026 -0.80514057] [-1.0030219 1.15020116 1.25304103 -0.33095947] [ 1.87539842 0.02117257 -0.91167654 1.03062793]]
可以使用randint()函数创建指定范围的随机数组。其主要包括4个参数:
low 表示取值范围的最小值,包含在内;
hige 表示取值范围的最大值,不包含在内,本项可选;
size 表示数组的大小,本项可选;
dtype 表示元素的数据类型,本项可选。
import numpy as np arr=np.random.randint(1,5,6) # low=1,hige=5,size=6 print("arr1:\n",arr) arr = np.random.randint(2,6) # low=2,hige=6,size=1(默认) print("arr2:\n",arr) arr = np.random.randint(2,size=6) # low=0(默认),high=2,size=6 print("arr3:\n",arr) arr = np.random.randint(6) # low=0(默认),hige=6,size=1(默认) print("arr4:\n",arr) arr = np.random.randint(6,size=(3,4)) # low=0(默认),hige=6,size=(3,4) print("arr5:\n",arr)
运行结果为:
arr1: [2 2 1 2 3 1] arr2: 5 arr3: [1 1 1 0 0 0] arr4: 3 arr5: [[2 4 5 0] [2 4 5 5] [3 5 2 2]]
可以使用choice()函数实现从已知数组中随机选取数组。其第一个参数可以是传入的数组,也可以是一个整数。当为整数时,就从函数range()中采样。
import numpy as np arr=np.arange(1,10) print("arr:\n",arr) arr1 = np.random.choice(arr) # 随机选取一个值(默认) print("arr1:\n",arr1) arr2 = np.random.choice(arr,3) # 随机选取3个值 print("arr2:\n",arr2) arr3 = np.random.choice(arr,(2,3)) # 随机选取2行3列组成数组 print("arr3:\n",arr3) arr4 = np.random.choice(5) # 调用range(5),从中随机选取一个值 print("arr4:\n",arr4)
运行结果为:
arr: [1 2 3 4 5 6 7 8 9] arr1: 5 arr2: [1 7 8] arr3: [[2 4 2] [5 1 6]] arr4: 4
可以使用shuffle()函数打乱数组元素排序,实现洗牌效果。
import numpy as np arr=np.arange(10) print(arr) np.random.shuffle(arr) # 第一次洗牌 print(arr) np.random.shuffle(arr) # 第二次洗牌 print(arr)
运行结果为:
[0 1 2 3 4 5 6 7 8 9] [6 2 5 1 7 8 4 3 9 0] [2 0 8 4 6 7 5 1 9 3]
注意:shuffle()函数会直接改变原数组排序,不会创建新数组。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6