Numpy系统学习(三)创建Ndarray数组对象

2025-12-13 0 105

目录
1 创建Ndarray数组对象
1.1 从无到有创建数组
1.1.1 使用array()函数
1.1.2 使用empty()函数
1.1.3 使用zeros(),ones(),full()函数
1.1.4 使用arange()函数
1.1.5 使用random.rand()函数
1.1.6 使用random.randint()
1.2 从已有数组创建数组
1.2.1 使用asarray()函数
1.2.2使用frombuffer()函数
1.2.3 使用fromiter()函数
2.关于其他补充说明
2.1 类型转换
2.2 其他生成
1 创建Ndarray数组对象
1.1 从无到有创建数组
1.1.1 使用array()函数
原型:
numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
参数说明:
名称 描述
object 数组或嵌套的数列
dtype 数组元素的数据类型,可选
copy 对象是否需要复制,可选
order 创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok 默认返回一个与基类类型一致的数组
ndmin 指定生成数组的最小维度
例1:测试使用dtype 类型的,已有类型
import numpy as np
a3=np.array([1,2,3,4,5],dtype=\”f2\”)
print(a3)
输出
[1. 2. 3. 4. 5.]
此时尽管输入的是整形,但是输出收到dtype影响,都变为了float型
例2:测试使用dtype类型,创建自己的类型
创建一个student类型的数据类型
姓名 ,学号 ,成绩
import numpy as np
student=np.dtype([(\”name\”,\”S20\”),(\”id\”,\”i2\”),(\”score\”,\”f2\”)])#利用dtype生成自己的数据类型
a4=np.array([(\”LiHua\”,\”1001\”,\”99.5\”),(\”Qodi\”,\”1002\”,\”85.5\”)],dtype=student)
print(a4)
输出
[(b\’LiHua\’, 1001, 99.5) (b\’Qodi\’, 1002, 85.5)]
1.1.2 使用empty()函数
作用创建一个指定形状的未初始化的数组,由于未初始化,所以输出是随机值
原型:
numpy.empty(shape, dtype = none, order = \’C\’)
参数 描述
shape 数组形状 ,如[3,4] 代表3行4列
dtype 数据类型,可选
order 有\”C\”和\”F\”两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
例1:创建一个4行3列的未初始化的浮点型数组
import numpy as np
a5=np.empty([4,3],dtype=\”f2\”)
print(a5)
输出
[[2.712e+03 2.163e+04 6.842e-02]
[2.251e-01 2.620e-01 6.465e-01]
[9.723e-02 3.159e-06 0.000e+00]
[0.000e+00 0.000e+00 1.984e+00]]
1.1.3 使用zeros(),ones(),full()函数
三个函数类似于empty(),创建指定形状的数组,不过zeros是以0来初始化,ones是以1来初始化,其中的1和0 默认为浮点数,full函数()可以以自己指定的值来填充,所以会多一个参数fill_value
原型
numpy.zeros(shape, dtype = float, order = \’C\’)
numpy.ones(shape, dtype = float, order = \’C\’)
numpy.full(shape, fill_value,dtype = float, order = \’C\’)
参数说明:
参数 描述
shape 数组形状
dtype 数据类型,可选
order \’C\’ 用于 C 的行数组,或者 \’F\’ 用于 FORTRAN 的列数组
fill_value 填充的值
例1:输出3行2列,用0初始化的数组
import numpy as np
a6=np.zeros([3,2])
print(a6)
输出
[[0. 0.]
[0. 0.] [0. 0.]]
1.1.4 使用arange()函数
原型
numpy.arange(start, stop, step, dtype)
根据 start 与 stop 指定的范围以及 step 设定的步长,生成一个 ndarray
参数说明:
参数 描述
start 起始值,默认为0
stop 终止值(不包含)
step 步长,默认为1
dtype 返回ndarray的数据类型,如果没有提供,则会使用输入数据的类型。
例1:生成一个从2起始,9结束,步长为2的,元素类型为浮点型的一维数组
import numpy as np
a8=np.arange(2,9,2,\”f2\”)
print(a8)
输出
[2. 4. 6. 8.]
1.1.5 使用random.rand()函数
这个函数可以生成任意维度的数组,数组元素的范围为0到1
参数里面,如果有一个数字,代表是一维的,两个数字,则是二维的,三个数组,代表三维的

import numpy as np
a1=np.random.rand(4)
a2=np.random.rand(4,2)
print(a1)
print(a2)
1.1.6 使用random.randint()
rand函数只能生成0到1 的浮点数,而我们的randint()生成的是 自己指定范围的整数
原型
randint(low,high=None,size=none,dtype=\”-1\”)
参数 说明
low 包含的下界
high 不包含的上界
size 元素个数
dtype 元素类型
例1:生成从0到9的五个随机数
import numpy as np
arr=np.random.randint(0,10,5)
print(arr)
输出
[6 4 7 1 5]
1.2 从已有数组创建数组
1.2.1 使用asarray()函数
numpy.asarray 类似 numpy.array,但 numpy.asarray 参数只有三个,比 numpy.array 少两个。
原型
numpy.asarray(a, dtype = None, order = None)
参数说明:
参数 描述
a 任意形式的输入参数,可以是,列表, 列表的元组, 元组, 元组的元组, 元组的列表,多维数组
dtype 数据类型,可选
order 可选,有\”C\”和\”F\”两个选项,分别代表,行优先和列优先,在计算机内存中的存储元素的顺序。
例1: 利用已有的1.1.3 节的a6 数组,生成一个新的数组
import numpy as np
a6=np.zeros([3,2])
a7=np.asanyarray(a6)
print(a7)
输出
[[0. 0.] [0. 0.] [0. 0.]]
1.2.2使用frombuffer()函数
frombuffer()函数用于实现动态数组
numpy.frombuffer 接受 buffer 输入参数,以流的形式读入转化成 ndarray 对象。
numpy.frombuffer(buffer, dtype = float, count = -1, offset = 0)
注意:buffer 是字符串的时候,Python3 默认 str 是 Unicode 类型,所以要转成 bytestring 在原 str 前加上 b。
参数说明:
参数 描述
buffer 可以是任意对象,会以流的形式读入。
dtype 返回数组的数据类型,可选
count 读取的数据数量,默认为-1,读取所有数据。
offset 读取的起始位置,默认为0。
例1:以流的形式从a开始读入“You are the best !” 建立数组
import numpy as np
a6=np.zeros([3,2])
a7=np.asanyarray(a6)
print(a7)
输出
[b\’a\’ b\’r\’ b\’e\’ b\’ \’ b\’t\’ b\’h\’ b\’e\’ b\’ \’ b\’b\’ b\’e\’ b\’s\’ b\’t\’ b\’!\’]
1.2.3 使用fromiter()函数
这个函数是通过已有的迭代器创建数组,对于迭代器,我们需要知道常见的比如list,tuple,dict等都是,具体可以阅读以下博客
第4章 Python基础概念之迭代、可迭代对象、迭代器-CSDN博客
原型
numpy.fromiter(iterable, dtype, count=-1)
参数 描述
iterable 可迭代对象
dtype 返回数组的数据类型
count 读取的数据数量,默认为-1,读取所有数据
示例:通过一个list迭代对象建立一个数组
import numpy as np
a9=[1,2,3,4,5]
arr=np.fromiter(a9,dtype=\”i1\”)
print(a9)
输出
[1,2,3,4,5]
注意:这里的dtype没有默认值,故需要申明dtype,否则会报错

2.关于其他补充说明
2.1 类型转换
numpy 主要通过dtype自定义,如果未自定义,则根据传入的内容调整类型
numpy默认ndarray的所有的元素的数据类型是相同的,这一点与python中的list不同,如果传进来的列表中包含不同的类型,则统一为同一类型,优先级str(字符串)>float>int
例1:比较float和int的优先级
import numpy as np
a1=np.array([0.1,0.2,3,4,5])
print(a1)
输出:
[0.1 0.2 3. 4. 5. ]
可见如果有浮点型,就优先将整形转换为浮点型
例2:比较str和float,int的优先级
import numpy as np
a2=np.array([0.1,0.2,\”3\”,4,5])
print(a1)
输出:
[\’0.1\’ \’0.2\’ \’3\’ \’4\’ \’5\’]
可见有字符型的“3”以后,会把所有的浮点型,整形都转换为浮点型
2.2 其他创建方式
以上仅罗列了一些常用的,数组对象的生成还可以有更多的选择
如生成正态分布的randn()函数
如生成对角矩阵的eye()函数

使用的情况类似,所以需要用到的情况下直接查表即可
原文链接:https://blog.csdn.net/Q52099999/article/details/128956392

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

申明:本文由第三方发布,内容仅代表作者观点,与本网站无关。对本文以及其中全部或者部分内容的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。本网发布或转载文章出于传递更多信息之目的,并不意味着赞同其观点或证实其描述,也不代表本网对其真实性负责。

左子网 编程相关 Numpy系统学习(三)创建Ndarray数组对象 https://www.zuozi.net/36702.html

常见问题
  • 1、自动:拍下后,点击(下载)链接即可下载;2、手动:拍下后,联系卖家发放即可或者联系官方找开发者发货。
查看详情
  • 1、源码默认交易周期:手动发货商品为1-3天,并且用户付款金额将会进入平台担保直到交易完成或者3-7天即可发放,如遇纠纷无限期延长收款金额直至纠纷解决或者退款!;
查看详情
  • 1、描述:源码描述(含标题)与实际源码不一致的(例:货不对板); 2、演示:有演示站时,与实际源码小于95%一致的(但描述中有”不保证完全一样、有变化的可能性”类似显著声明的除外); 3、发货:不发货可无理由退款; 4、安装:免费提供安装服务的源码但卖家不履行的; 5、收费:价格虚标,额外收取其他费用的(但描述中有显著声明或双方交易前有商定的除外); 6、其他:如质量方面的硬性常规问题BUG等。 注:经核实符合上述任一,均支持退款,但卖家予以积极解决问题则除外。
查看详情
  • 1、左子会对双方交易的过程及交易商品的快照进行永久存档,以确保交易的真实、有效、安全! 2、左子无法对如“永久包更新”、“永久技术支持”等类似交易之后的商家承诺做担保,请买家自行鉴别; 3、在源码同时有网站演示与图片演示,且站演与图演不一致时,默认按图演作为纠纷评判依据(特别声明或有商定除外); 4、在没有”无任何正当退款依据”的前提下,商品写有”一旦售出,概不支持退款”等类似的声明,视为无效声明; 5、在未拍下前,双方在QQ上所商定的交易内容,亦可成为纠纷评判依据(商定与描述冲突时,商定为准); 6、因聊天记录可作为纠纷评判依据,故双方联系时,只与对方在左子上所留的QQ、手机号沟通,以防对方不承认自我承诺。 7、虽然交易产生纠纷的几率很小,但一定要保留如聊天记录、手机短信等这样的重要信息,以防产生纠纷时便于左子介入快速处理。
查看详情

相关文章

猜你喜欢
发表评论
暂无评论
官方客服团队

为您解决烦忧 - 24小时在线 专业服务