2.2 NumPy数组的构造

本文介绍了NumPy中的核心数据结构ndarray,包括其构造原理、数据类型、复制特性以及内存布局。通过示例展示了如何创建多维数组,讨论了数据类型转换、复制选项(copy)以及内存顺序(order)对数组操作的影响。强调了数组元素应尽量保持同类型以避免不可预知的错误,并探讨了subok参数如何影响返回的数组类型。
摘要由CSDN通过智能技术生成

2.2 NumPy数组的构造
ndarray定义的相同类型元素的N维数组。可以使用基于0的索引访问数组中的元素,使用起来与Python的原生数组没有什么区别。不过在实现方式上,却完全不同。
ndarray中的每一个元素都占用同样大小的内存,每一个元素都是同一种数据类型对象。除了基本的数据类型(整数、浮点数等等),数据类型也可以是某种数据结构(比如定义一个学生的基本信息数据结构为数据对象)。
实际上ndarray是用C编写实现的,然后通过接口被Python调用。有兴趣深入研究的,可以看一下numpy的源码。源码的下载地址是:
https://github.com/numpy/numpy

在NumPy的官网上有说明ndarray是如何实现的:
在这里插入图片描述

ndarray是一个对象,其中的data参数指向一块连续的内存区域,在此内存区域中存放的是dtype实例化对象。dtype一共支持21种内置的数据类型。在同一个ndarray的对象中,dtype是一样的,占用的内存大小也是一样的。这样的定义不如Python原始数组灵活方便,但是却可以极大的提高访问与处理速度。

需要注意的是,不是所有的ndarray对象都拥有自己的内存块,有的ndarray对象可能指向其他的ndarray内存地址。也就是说,数据可能是共享的。

使用numpy.array()实例化一个ndarray对象:

numpy.array(object, dtype = None, copy = True, order &
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值