python中ndarray对象_Numpy 理解ndarray对象的示例代码

numpy作为python科学计算的基础模块,支撑起了pandas、matplotlib等使用。其中,ndarray作为numpy的重要使用对象不得不研究理解一下。

ndarray,存储单一数据类型的多维数组结构,在内存中连续存在,以行索引和列索引的方式标记数组中的每一个元素。采用预编译好的C语言代码,性能上的表现十分不错。

1、ndarray的数据结构

2、ndarray的创建

numpy主要有以下几种方式创建数组。除此之外,其他过程也可能产生数组,比如:cv2.imread读取图片,返回数组。

np.array() # 传入类数组数据结构,list,tuple等,或者其他嵌套序列。返回的维度依据传入的数据而定

np.linspace() # 根据给定的间距生成等差序列,指定元素数量,返回一维数组

np.arange()# 根据给定的间距生成等差序列,指定步长。返回一维数组

np.ones() # 根据传入的shape,返回一个元素全是1的数组

np.zeros() # 根据传入的shape,返回一个元素全是0的数组

np.full() # 根据传入的shape和value,返回一个元素全是value的数组,比前面两个灵活

np.empty() # 根据传入的shape,返回一个元素全是随机化而不是空值的数组

np.genfromtxt() # 从文本文件读取生成一个数组

3、ndarray的抽象理解

先创建一个三个数组,一维、二维、三维。

arr1 = np.arange(3)

arr1

array([0, 1, 2])

---------------------------------------------------------

arr2 = np.arange(9).reshape(3,3)

arr2

array([[0, 1, 2],

[3, 4, 5],

[6, 7, 8]])

----------------------------------------------------------

arr3 = np.arange(27).reshape(3,3,3)

arr3

array([[[ 0, 1, 2],

[ 3, 4, 5],

[ 6, 7, 8]],

[[ 9, 10, 11],

[12, 13, 14],

[15, 16, 17]],

[[18, 19, 20],

[21, 22, 23],

[24, 25, 26]]])

在python中的arr结构如上所示。我们将其形象化表示出来,如下图。

一维数组只有一个维度,也叫rank,只有一个axis轴,axis=0。

二维数组有两个维度,有两个axis轴,axis=0和1。

三维数组有三个维度,有三个axis轴,axis=0、1、2。

我们直接在三维上执行索引操作,来理解ndarray的排布。

arr3[1,2,1]

输出16

索引[1,2,1]依次从高维到低维,从axis轴2到1到0,1指三维上的第2个元素,即上图中间的数组,是一个二维数组。2指二维上的第3个元素,是一个一维数组。1值一维上的第2个元素。也可以试着从轴方向去理解索引的原理。

可以自己操作一下下面索引代码,看看出结果。

arr3[3,3,2]

不同维度的ndarray shape理解如下。可以通俗的认为是从点带面,再到块。

4、ndarray的操作

主要有索引、切片、过滤等,后续细谈。只要理解了ndarray,操作其实很简单。

到此这篇关于Numpy 理解ndarray对象的示例代码的文章就介绍到这了,更多相关Numpy ndarray对象内容请搜索python博客以前的文章或继续浏览下面的相关文章希望大家以后多多支持python博客!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值