当前位置: 首页 新闻详细

Python-Numpy模块tile函数[源码解析],七爪源码:NumPy 基础知识

专业互联网培训机构——完成蜕变以后轻松拿高薪

电话+V:159999-78052 ,欢迎咨询如何从源代码构建numpy,[python实用课程],[C++单片机原理],[C#、PHP网站搭建],[Nodejs小程序开发],[ios游戏开发],[安卓游戏开发],[教会用大脑用想法赚钱实现阶层跨越]

一、Python-Numpy模块tile函数[源码解析]

本文将深入解析Pythonnumpy模块中的tile函数,探讨其功能、参数类型限制及实际应用场景。tile函数主要用于复制数组,实现重复操作。

函数tile(A,reps)中,A和reps需要提供数组或其他序列化类型作为输入。A可以是数组、列表、元组、字典、矩阵甚至基本Python数据类型如int、float、string、bool。而reps的输入类型可以是tuple、list、dict、array、int或bool,但不支持float、string和matrix类型作为输入参数。

理解tile函数的关键在于其如何实现数组复制功能。其实,如果能够利用Python的广播功能,无需调用tile函数。本文将通过源码分析,揭示tile函数的运作机制,以及如何在实际应用中正确使用它。

tile函数源码解析

深入分析tile函数源码,我们首先关注函数头部定义,然后对reps参数进行特殊处理。将reps转换为元组类型,是解析函数逻辑的关键步骤。我们逐一分析元组转换过程,以及不同类型输入如何处理。

在源码中,当reps输入不符合要求的类型时,会抛出TypeError异常,并将异常值放入元组中,从而实现兼容性处理。通过元组长度的获取,我们可以理解函数如何处理重复次数。

在进一步的代码分析中,我们发现元组长度与输入数组维度的匹配性至关重要。判断语句中,通过检查数组维度与重复次数的一致性,确保函数能够准确执行复制操作。如果维度不匹配,则通过特定代码逻辑进行处理,确保函数能够正确识别并执行操作。

形成最终输出结果的shape函数,通过将shape属性与重复次数相乘,实现数组复制效果。核心代码集中在对原始数据的维度进行重复处理,确保最终输出的数组形状符合预期。

示例代码

通过示例代码,直观展示tile函数的使用方法。例如,对于数组A=[1,2]和reps=(1,1),函数将A复制为相同形状。而对于数组A=[[1,2],[3,4]]和reps=(1,2),tile函数将A按照给定的重复次数生成相应形状的输出。

二、python下numpy不成功,请问有没有简单的安装方法

你可以删除你的python,然后安装一整套的python(x,y),这里面常用的工具都齐全了。不再为numpy发愁。另外unofficialsite里的安装包也挺好用。如果是在linux尽量使用它自带的分发包,通常也没有问题。在windows下找.exe或者是msi的安装包。通常没有问题。在linux下很方便。可以直接使用源代码编译安装。如果一定要在windows下编译安装,需要找到与python编译用的编译器相同版本的vc,后面就顺利了。

七爪源码:NumPy基础知识

2022-07-3023:56·庄志炎第1部分:数组


如何安装

pipinstallnumpy

如何使用图书馆

importnumpyasnp

大批

包含相同数据类型的元素广播可用

数组基础

arr=np.array([[1,2,3],[4,5,6]])type(arr)>><class'numpy.ndarray'>arr.ndim>>2arr.shape>>(2,3)arr.dtype>>int32arr.size>>6.ndim:维数.shape:每个维度的大小.dtype:元素的数据类型.size:元素数量

创建一个数组

arr=np.zeros((4,2))>>[[0.0.][0.0.][0.0.][0.0.]]arr=np.ones(5)>>[1.1.1.1.1.]#floatarr=np.ones(5,dtype=int)>>[11111]#intarr=np.arange(5)>>[01234]arr=np.arange(3,10,2)>>[3579]

重塑数组

arr=[01234567891011]arr.reshape(3,4)>>[[01234567891011]]arr.reshape(-1)#flatten>>[01234567891011]arr.reshape(-1,2)>>[[01][23][45][67][89][1011]]

访问数组

arr=[01234]arr[0]=777>>[7771234]arr[1]='hi'>>Error!发生错误是因为numpy数组元素必须是相同的数据类型。

arr[1]=3.14>>[7773234]分配的浮点类型四舍五入到最接近的int类型。


多维数组索引

arr=[[01234][56789][1011121314][1516171819]]arr[2][1]arr[2,1]>>11arr[[0,2],[1,3]]>>[113]arr[[x1,x2],[y1,y2]]将获得(x1,y1)和(x2,y2)位置的元素。


多维数组切片

arr=[[01234][56789][1011121314][1516171819]]arr[1:3]>>[[56789][1011121314]]arr[1:3,1:4]>>[[678][111213]]arr[:,1:3]>>[[12][67][1112][1617]]

广播

在数组中:

arr=[01234]arr*2>>[02468]在列表中:

lst=[01234]lst*2>>[0,1,2,3,4,0,1,2,3,4]数组广播示例:

scores=[[836557][907164][848359][837244][786667]]scores[:,2]=scores[:,2]+5>>scores=[[836562][907169][848364][837249][786672]]

NumPy的最终示例

scores=np.array([[836557],[907164],[848359],[837244],[786667]])num=scores.shape[0]>>(5,3)>>5foriinrange(num):print(np.mean(scores[i]))>>68.333375.075.333366.333370.3333

关注七爪网,获取更多APP/小程序/网站源码资源!

【WINDRISES EMPLOYMENT PROGRAMMING】尊享对接老板

电话+V: 159999-78052

机构由一批拥有10年以上开发管理经验,且来自互联网或研究机构的IT精英组成,负责研究、开发教学模式和课程内容。公司具有完善的课程研发体系,一直走在整个行业发展的前端,在行业内竖立起了良好的品质口碑。

如何从源代码构建numpy
发布人:shukaiseng1 发布时间:2024-10-14