numpy 数组

本文介绍了使用numpy库创建一维数组的各种方法,包括array、arange、linspace、logspace、zeros、eye、diag及ones函数。还讨论了自定义数据类型以及生成随机数的函数random.random、random.rand和random.randn。最后,讲解了如何通过切片获取数组中的特定元素。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 通过array创建一维数组

arry = np.array([1,2,3])
print(arry) # [1 2 3]
print(arry.dtype) # int32  数据类型
print(arry.itemsize) # 4  元素大小 一个元素占的字节
print(arry.shape) # (3,)  表示几行几列 本题中三行一列
print(arry.ndim) # 1  维度
print(arry.size) # 3  元素个数

2.通过arange 函数创建
第一个参数指起始值,第二个参数指结束值,包含起始值,不包含结束值,第三个参数表示步长

arry1 = np.arange(1,5,2)
print(arry1)  # [1 3]

3.通过linespace 创建一维数组
第一个参数指起始值,第二个参数指结束值,第三个参数指产生的元素的个数

array = np.linspace(1,6,4)
print(array) # [ 1.          2.66666667  4.33333333  6.        ]

4.通过logspace 创建一维数组
第一个参数指10几次方开始,第二个参数指10几次方结束,第三个参数指产生的元素个数
本题中从10^1 开始,到10^2结束,产生了5个数据

arry = np.logspace(1,2,5)
print(arry) # [  10.           17.7827941    31.6227766    56.23413252  100.        ]

5.通过zeros 函数创建数组
第一个参数指几行第二个参数指几列

array = np.zeros((2,3))
print(array) # 产生了两行三列的数组,元素值都为0

在这里插入图片描述

6.通过eye创建数组
参数指几行几列,产生的数组对角线为1

array = np.eye(3)
print(array)

7.通过diag 创建数组
参数是产生的数组的对角线

array = np.diag([1,2,3])
print(array)

8.通过ones创建数组
两个参数,第一个参数指几行,第二个参数指几列,产生的数组的元素都为1

array = np.ones((2,3))
print(array)

9.自定义数据类型

定义几个字段,设定其数据类型
dt = np.dtype([('name',np.str_,40),('age',np.int64),('gender',np.str_,40)])
# 使用自定义数据类型
array = np.array(('张三',23,'男'),dtype=dt)
print(array)  # ('张三', 23, '男')

10. random.random(n)生成随机数
生成0-1.0的随机浮点数,包括0 不包括1.0 参数表示产生几个元素

array = np.random.random(3)
print(array) # [ 0.54496532  0.55284491  0.98462493]

11.random.rand()生成指定行和列的符合正态分布的随机小数[0,1) 不包括1

array = np.random.rand(2,3)
print(array)
 # [[ 0.62617911  0.1249597   0.94166713]
[ 0.66463669  0.99038188  0.94102278]]

12.random.randn 生成符合正态分布的随机数
参数指生成2行3列的元素,

array = np.random.randn(2,3)
print(array)

13.获取数组中的指定元素,通过切片实现
格式为: array[:2:1,::2] 逗号前一个操作针对行,有三个参数,可以省略,省略默认0。
第一个参数表示起始值,第二个参数是结束值不包括,第三个参数是步长,表示间隔多少取一个值。:2:1 表示从0开始到2结束,但不包括2,间隔为1 取值,数组行数和列数从0开始。表示从第一行,也就是0行开始,到第二行结束,每间隔1个取值,就是第一行和第二行; ::2 表示列数从开始到结束每间隔2取一个值,表示第一行和第三行。
总体下来就是第一行和第二行的第一列和第三列。

array = np.array([[1,2,3],[2,3,4],[5,6,7]])
print(array)
# 获取第一行的所有数据
print(array[:1,:]) # 逗号之前表示对行的操作,逗号后表示对列的操作
# 获取第一行中的2,3
print(array[:1,1:]) # [[2 3]]
# 获取第一行和第二行的第一列和最后一列
print(array[:2:1,::2]) 
# [[1 3] [2 4]]  行的操作表示从第1行开始,到第3行结束,步长为1,也就是第一行和第二行
#列操作表示从第一列到最后一列,间隔为2取值,也就是第一列和第三列

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值