栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Numpy创建数组

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Numpy创建数组

文章目录
  • 将列表转换为数组
  • 创建随机数组(random模块)
    • 随机打乱数组顺序(shuffle)
    • 设置随机数种子(seed、RandomState)
  • 按指定形状创建多维数组
    • 数组拼接(concatenate vstack hstack)
    • 数组分裂(split vsplit hsplit)

将列表转换为数组
import numpy as np

list1 = [[2, 5, 3.2], [0, 4.2, 5]]
nd1 = np.array(list1)
print(nd1)
'''
[[2.  5.  3.2]
 [0.  4.2 5. ]]
'''
创建随机数组(random模块)
函数代码含义
random:0~1之间的随机数np.random.random()
np.random.random()生成一个0~1之间的随机数
np.random.random(2)生成两个0到1之间的随机数
np.random.random((2, 2))生成形状为(2, 2)的0到1之间的随机数
rand:0~1之间均匀分布的随机数np.random.rand()
np.random.rand(2)生成两个服从0-1均匀分布的随机数
np.random.rand(2, 3)生成形状为(2,3)的服从0-1均匀分布的随机数
np.random.rand(2, 3, 4)生成形状为(2,3,4)的服从0-1均匀分布的随机数
uniform:某区间均匀分布的随机小数np.random.uniform()
np.random.uniform(2, 5)生成一个均匀分布在[2,5)区间的随机数
np.random.uniform(10, 50, 3)生成三个均匀分布在[10,50)区间的随机数
np.random.uniform(0, 10, (2, 3))生成三个均匀分布在[10,50)区间的随机数
randn:标准正态的随机小数np.random.randn()
np.random.randn()生成一个标准正态的随机数
np.random.randn(3)生成三个标准正态的随机数
np.random.randn(2, 3)生成形状为且(2,3)的标准正态的随机数
randint:随机生成整数np.random.randint()
np.random.randint(2, 5)随机生成一个[2,5)区间的整数
np.random.randint(0, 10, 5)随机生成5个[0,10)区间的整数
np.random.randint(10, 50, (2, 3))随机生成形状为(2,3)的数值在[10,50)区间的整数
normal:生成正态分布np.random.normal()
np.random.normal(10, 1)随机生成1个正态分布为(10,1)的随机数
np.random.normal(5, 10, 3)随机生成3个正态分布为(5,10)的随机数
np.random.normal(82, 20, (2, 3))随机生成形状为(2,3)的正态分布为(82,20)的随机数
random_sample:随机的浮点数np.random.random_sample()
np.random.random_sample()随机生成1个浮点数
np.random.random_sample(3)随机生成3个浮点数
np.random.random_sample((3, 3))随机生成形状为(3,3)的浮点数
随机打乱数组顺序(shuffle)
nd = np.random.randint(0,10,(5,5))
print(nd)
'''
[[9 3 6 5 1]
 [4 2 5 7 8]
 [5 9 1 7 7]
 [1 1 5 9 3]
 [7 0 1 4 8]]
'''
np.random.shuffle(nd)    #将nd数组按行顺序打乱
print(nd)
'''
[[1 1 5 9 3]
 [4 2 5 7 8]
 [9 3 6 5 1]
 [5 9 1 7 7]
 [7 0 1 4 8]]
'''
设置随机数种子(seed、RandomState)

设置种子是为了保证每次生成的数一样

rng = np.random.RandomState(42) # 种子
ser = pd.Series(rng.randint(0,10,4))

设置随机数种子,100为参数,参数任意取,参数不同,所获得的随机数不同。由于有种子的存在,每次生成5个[0,10)区间的整数相同

np.random.seed(100)
nd = np.random.randint(0, 10, 5)
print("种子为100时随机数的结果为:",nd)
'''
种子为100时随机数的结果为: [8 8 3 7 7]
'''
按指定形状创建多维数组
函数代码含义
zeros:创建全为0的数组np.zeros()
np.zeros(2)创建全为0的且含两个元素的一维数组
np.zeros((2,3))创建全为0的且形状为(2,3)的二维数组
np.zeros((2,3,4),dtype=int)创建全为0的且形状为(2,3,4)的三维数组,int类型
ones:创建全为1的数组np.ones()
np.ones(2)创建全为1的且含两个元素的一维数组
np.ones((2,3))创建全为1的且形状为(2,3)的二维数组
np.ones((2,3,4))创建全为1的且形状为(2,3,4)的三维数组
empty:创建空数组,空数据不为0,而是未初始化np.empty()
np.empty(2)创建全为空的且含两个元素的一维数组
np.empty((2,3))创建全为空的且形状为(2,3)的二维数组
np.empty((2,3,4))创建全为空的且形状为(2,3,4)的三维数组
zeros_like:创建与某数组相同形状且全为0的数组np.zeros_like()
np.zeros_like(nd1)创建与nd1维度形状相同且元素全为0的数组
ones_like:创建与某数组相同形状且全为1的数组np.ones_like()
np.ones_like(nd1)创建与nd1维度形状相同且元素全为1的数组
empty_like:创建与某数组相同形状且为空的空数组(未初始化)np.empty_like()
np.empty_like(nd1)创建与nd1维度形状相同且全为空的数组
eye:创建左上到右下对角线为1,其他为0的数组np.eye()
np.eye(5)创建5*5的单位矩阵,左上角到有右下角的对角线全为1,其他为0
full:将某值填充某数组np.full()
np.full((3,5),666)创建形状为(3,5)且元素全为666的数组
diag:创建对角线为某值其他为0的数组np.diag()
np.diag((1,2,3))创建左上到右下对角线为1,2,3其他为0的矩阵
linspace:创建某范围内的等差数列np.linspace()
np.linspace(0,5,11)创建从0到5元素为11个的等差数列
logspace:创建某范围内的等比数列np.logspace()
np.logspace(0,2,10)创建从10º到10²元素为10个的等比数列
np.logspace(1,3,10)创建从10¹到10³元素为10个的等比数列
arangenp.arange()
np.arange(10)从[0,10)的整数
np.arange(5, 11)从[5,11)的整数
np.arange(3, 12, 2)从[3,12)且间隔为2的整数
np.arange(2, 13, 3)从[2,13)且间隔为3的整数
数组拼接(concatenate vstack hstack)
import numpy as np

a = np.array([1,2,3])
b = np.array([4,5,6])
c = np.array([7,8,9])
print(np.concatenate([a,b,c]))
'''
[1 2 3 4 5 6 7 8 9]
'''
aa = np.array([[1,2],[3,4]])
bb = np.array([[5,6],[7,8]])
print(np.concatenate([aa,bb]))        # 按第一个轴拼接
'''
[[1 2]
 [3 4]
 [5 6]
 [7 8]]
'''
print(np.concatenate([aa,bb],axis=1)) # 按第二个轴拼接
'''
[[1 2 5 6]
 [3 4 7 8]]
'''
print(np.vstack([aa,bb])) # 垂直拼接
'''
[[1 2]
 [3 4]
 [5 6]
 [7 8]]
'''
print(np.hstack([aa,bb])) # 水平拼接    dstack第三维度
'''
[[1 2 5 6]
 [3 4 7 8]]
'''
数组分裂(split vsplit hsplit)
import numpy as np

a = np.array([1,2,3,4,5,6,7,8])
x,y,z = np.split(a,[3,5])#3 5为索引
print(x,y,z)
'''
[1 2 3] [4 5] [6 7 8]
'''
aa = np.array([[1,1,1,1],[2,2,2,2],[3,3,3,3],[4,4,4,4]])
x,y = np.vsplit(aa,[1])
print(x)
'''
[[1 1 1 1]]
'''
print(y)
'''
[[2 2 2 2]
 [3 3 3 3]
 [4 4 4 4]]
'''
x,y = np.hsplit(aa,[1])
print(x)
'''
[[1]
 [2]
 [3]
 [4]]
'''
print(y)
'''
[[1 1 1]
 [2 2 2]
 [3 3 3]
 [4 4 4]]
'''
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/861710.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号