NumPy使用教程(二)快速构建数组
NumPy使用教程(二)快速构建数组目录树
NumPy使用教程(二)快速构建数组
来自http://www.tpleina.com/2019/05/3787622309.html
本节内容相对简单,使用NumPy提供方法快速创建各种格式的多维数组
randint
np.random.randint(low, high=None, size=None)
从[low,high)范围,随机整数,构建多维数组
import numpy as np
# 创建长度为10的一维数组,且每个元素取值范围1~50
print(np.random.randint(1,50,10))
# 创建4x3二维数组,且每个元素取值范围1~5
print(np.random.randint(1,50, size=(4,3)))
randn
np.random.randn(d0, d1, …, dn)
生成多维数组,具有标准正态分布
import numpy as np
# 一维
print(np.random.randn(10))
# 二维
print(np.random.randn(3,5))
# 三维
print(np.random.randn(3,5,2))
uniform
np.random.uniform(low=0.0, high=1.0, size=None)
从[0,1)范围随机抽取浮点数,构建多维数组
import numpy as np
# 创建长度为10的一维数组,且每个元素取值范围0~1
print(np.random.uniform(size=10))
# 创建长度为10的一维数组,且每个元素取值范围01~12的浮点数
print(np.random.uniform(1, 12, size=10))
# 创建4x3二维数组
print(np.random.uniform(size=(4,3)))
# 创建4x3二维数组,且取值范围1~12的浮点数
print(np.random.uniform(1, 12, size=(4,3)))
choice
np.random.choice(arr, size=None, replace=True)
从a(数组)中选取size(维度)大小的随机数,replace=True表示可重复抽取
import numpy as np
np.random.choice(np.arange(20), (3,3), True)
random、random_sample、ranf、sample
np.random.random(size=None)
产生[0.0, 1.0)之间的浮点数
相同用法还有np.random.random_sample
, np.random.ranf
, np.random.sample
但是np.random.sample
不能抽取重复数据
import numpy as np
# 一维
print(np.random.random(10))
# 二维
print(np.random.random((3,5)))
# 三维
print(np.random.random((3,5,2)))
rand
np.random.rand(d0, d1, …, dn)
生成多维数组,且每个元素取值0~1浮点数
import numpy as np
# 一维
print(np.random.rand(10))
# 二维
print(np.random.rand((3,5)))
# 三维
print(np.random.rand((3,5,2)))
permutation
np.random.permutation(x)
随机打乱x中的元素
若x是整数,则打乱arange(x),若x是一个数组,先复制x,对副本进行打乱,打乱只针对数组的第一维
import numpy as np
print(np.random.permutation(10))
arr = np.arange(15).reshape(3,5)
# 只对第一维进行打乱,打乱行次序
print(np.random.permutation(arr))
shuffle
np.random.shuffle(x)
跟permutation功能类似,都是随机打乱x中的元素
区别是permutation对x进行复制,对新x进行打乱,不影响原来x,而shuffle是对原始x进行打乱
import numpy as np
arr = np.arange(10)
print(arr)
arr1 = arr.copy()
np.random.shuffle(arr)
print(arr)
print(arr1)
arr1 = arr1.reshape(5,2)
print(arr1)
np.random.shuffle(arr1)
print(arr1)