numpy_ndarry的创建及数据类型
发表于:2025-02-06 作者:千家信息网编辑
千家信息网最后更新 2025年02月06日,ndarray 多维数组(N Dimension Array)NumPy数组是一个多维的数组对象(矩阵),称为ndarray,具有矢量算数运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点注意
千家信息网最后更新 2025年02月06日numpy_ndarry的创建及数据类型
ndarray 多维数组(N Dimension Array)
NumPy数组是一个多维的数组对象(矩阵),称为ndarray,具有矢量算数运算能力和复杂的广播能力,并具有执行速度快和节省空间的特点
注意:ndarray的下标从0开始,且数组里的所有元素必须是相同类型
ndarray拥有的属性
1.ndim属性:维度个数
2.shape属性:纬度大小
3.dtype属性:数据类型
ndarray的随机创建
通过随机抽样(numpy.random)生成随机数据
示例代码:
# 导入numpy, 别名npimort numpy as np# 生成指定维度大小(3行4列)的随机多维浮点型数据(二维),rand固定区间0.0 ~ 1.0arr = np.random.rand(3, 4)print(arr)print(type(arr))# 生成指定维度大小(3行4列)的随机多维整型数据(二维),randint()可以指定区间(-1 ~ 5)arr = np.random.randint(-1, 5, size = (3, 4)) # 'size='可省略print(arr)print(type(arr))# 生成指定维度大小(3行4列)的随机多维浮点型数据(二维),uniform()可以指定区间(-1 ~ 5)arr = np.random.uniform(-1, 5, size = (3, 4)) # 'size='可省略print(arr)print(type(arr))print('维度个数: ', arr.ndim)print('维度大小: ', arr.shape)print('数据类型: ', arr.dtype)
运行结果:
[[ 0.09371338 0.06273976 0.22748452 0.49557778] [ 0.30840042 0.35659161 0.54995724 0.018144 ] [ 0.94551493 0.70916088 0.58877255 0.90435672]][[ 1 3 0 1] [ 1 4 4 3] [ 2 0 -1 -1]][[ 2.25275308 1.67484038 -0.03161878 -0.44635706] [ 1.35459097 1.66294159 2.47419548 -0.51144655] [ 1.43987571 4.71505054 4.33634358 2.48202309]]维度个数: 2维度大小: (3, 4)数据类型: float64
ndarray的序列创建
- np.array(collection)
collection 为序列型对象(list)、嵌套序列对象(list of list)。
示例代码:
# list序列转换为ndarraylis = range(10)arr = np.array(lis)print(arr) # ndarray数据print(arr.ndim) # 维度个数print(arr.shape) # 维度大小# list of list嵌套序列转换为ndarraylis_lis = [range(10), rarnge(10)]arr = np.array(lis_lis)print(arr) # ndarray数据print(arr.ndim) # 维度个数print(arr.shape) # 维度大小
运行结果:
# list序列转换为 ndarray[0 1 2 3 4 5 6 7 8 9]1(10,)# list of list嵌套序列转换为 ndarray[[0 1 2 3 4 5 6 7 8 9] [0 1 2 3 4 5 6 7 8 9]]2(2, 10)
- np.zeros()
指定大小的全0数组。注意:第一个参数是元组,用来指定大小,如(3,4)。
- np.ones()
指定大小的全1数组。注意:第一个参数是元组,用来指定大小,如(3,4)。
- np.empty()
初始化数组,不是总是返回全0,有时返回的是未初始的随机值(内存里的随机值)。
示例代码(2,3,4):
# np.zeroszeros_arr = np.zeros((3, 4))# np.onesones_arr = np.ones((2, 3))# np.emptyempty_arr = np.empty((3, 3))# np.empty 指定数据类型empty_int_arr = np.empty((3, 3), int)print('------zeros_arr------`)print(zeros_arr)print('\n------ones_arr------`)print(ones_arr)print('\n------empty_arr------`)print(empty_arr)print('\n------empty_int_arr------`)print(empty_int_arr)
运行结果:
------zeros_arr-------[[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]]------ones_arr-------[[ 1. 1. 1.] [ 1. 1. 1.]]------empty_arr-------[[ 0. 0. 0.] [ 0. 0. 0.] [ 0. 0. 0.]]------empty_int_arr-------[[0 0 0] [0 0 0] [0 0 0]]
- np.arrange()和reshape()
arange()类似python的range(), 创建一个一维ndarray数组。
reshape()将重新调整数组的维数
示例代码(5):
# np.arange()arr = np.arange(15) # 15个元素的一维数组print(arr)print(arr.reshape(3, 5)) # 3*5个元素的二维数组print(arr.reshape(1, 3, 5)) # 1*3*5个元素的三维数组
运行结果:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14][[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]][[[ 0 1 2 3 4] [ 5 6 7 8 9] [10 11 12 13 14]]]
- np.arange()和random.shuffle()
random.shuffle()将打乱数组序列(类似于洗牌)
示例代码(6):
arr = np.arange(15)print(arr)np.random.shuffle(arr)print(arr)print(arr.reshape(3, 5))
运行结果:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14][ 5 8 1 7 4 0 12 9 11 2 13 14 10 3 6][[ 5 8 1 7 4] [ 0 12 9 11 2] [13 14 10 3 6]]
ndarray的数据类型
dtype参数
指定数组的数据类型,类型名+位数,如float64, int32
- astype方法
转换数组的数据类型
示例代码(1、2):
# 初始化3行4列数组,数据类型为float64zeros_float_arr = np.zeros((3,4), dtype = np.float64)print(zeros_float_arr)print(zeros_float_arr.dtype)# astype转换数据类型,将已有的数组的数据类型转换为int32zeros_int_arr = zeros_float_arr.astype =(np. int32)print(zeros_int_arr)print(zeros_int_arr.dtype)
运行结果:
[[ 0. 0. 0. 0.] [ 0. 0. 0. 0.] [ 0. 0. 0. 0.]]float64[[0 0 0 0] [0 0 0 0] [0 0 0 0]]int32
数组
数据
类型
大小
维度
序列
代码
示例
结果
运行
个数
多维
元素
属性
二维
生成
区间
参数
对象
浮点
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
服务器双图技术教程视频
东方通配置数据库连接池
网络安全2020关键词
怎样同步支付宝数据库
国产安全服务器虚拟化
买服务器还是工作站
视频监控服务器得gpu如何选择
内蒙古质量软件开发服务标准
苏州信息软件开发销售
维护网络技术
服务器磁盘可以升级吗
服务器托管报价单
能够检索专利文献的数据库有哪些
单机版软件开发质量管理
数据库基础与实践课后答案
没有文凭怎么学习网络技术
安徽电脑软件开发大概多少钱
mc服务器ip大全1.18.1
盗版老头环怎么进服务器
跳跳蛋直播软件开发
珠海微信软件开发哪家好
成本统计软件含数据库
数据库连接失败sa
登录刺激战场国际服服务器繁忙
城乡居民医疗保险数据库操作出错
互刷软件开发
linux重启服务器网口关闭
不属于安全网络技术
互联网技术与科技关系
软件开发shipin