NumPy使用教程(二)快速构建数组

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)