numpy函数库中一些经常使用函数的记录

##numpy函数库中一些经常使用函数的记录

近期才開始接触python,python中为我们提供了大量的库,不太熟悉。因此在《机器学习实战》的学习中,对遇到的一些函数的使用方法进行记录。

(1)mat( )

numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都能够用于处理行列表示的数字元素。

尽管他们看起来非常类似,可是在这两个数据类型上运行同样的数学运算能够得到不同的结果,当中numpy函数库中matrix与MATLAB中matrices等价。

调用mat( )函数能够将数组转化为矩阵。比如

random.rand(3,3)#构造一个3*3的随机数组

mat(random.rand(3,3))#将3*3的随机数组转化为一个3*3的矩阵

(2)shape( )

shape函数是numpy.core.fromnumeric中的函数,它的功能是读取矩阵的长度。比方shape[0]就是读取矩阵第一维度的长度。

它的输入參数能够使一个整数表示维度。也能够是一个矩阵。样例例如以下:

matDemo=mat(random.rand(3,5))
matDemo.shape[0]#获取矩阵第一维的长度,输入參数是一个整数表示维度
matDemo.shape[1]#获取矩阵第二维的长度。
shape(matDemo)  #获取矩阵的各个维度的大小。输入參数是一个矩阵
shape(matDemo)[i]#这样写也能够获取矩阵的第i个维度的大小

(3)random.uniform( )函数

功能:uniform(x,y) 方法将随机生成下一个实数,它在[x,y]范围内。

參数说明:

x – 随机数的最小值界。

y – 随机数的最大值界。

返回值:返回一个浮点数。

使用方法例如以下:

from numpy import *  #或者直接 import random也能够
random.uniform(x,y)

注意:uniform()是不能直接訪问的。须要导入 random 模块,然后通过 random 静态对象调用该方法。

(4)means( )方法

means( )方法为求平均值的方法

numpy.mean(a, axis=None, dtype=None, out=None, skipna=False, keepdims=False)

axis=None时计算数组中的全部值的平均值

axis=0时以列为单位计算数组的每列的全部值的平均值

axis=1时计算数组的每行为单位的全部事的平均值

dtype为指定数组中元素的类型,默觉得float64

numpy.mean

numpy.mean(a, axis=None, dtype=None, out=None, skipna=False, keepdims=False)

Compute the arithmetic mean along the specified axis.

Returns the average of the array elements. The average is taken over the flattened array by default, otherwise over the specified axis. float64 intermediate and return values are used for integer inputs.

Parameters :

a : array_like

Array containing numbers whose mean is desired. If a is not an array, a conversion is attempted.

axis : int, optional

Axis along which the means are computed. The default is to compute the mean of the flattened array.

dtype : data-type, optional

Type to use in computing the mean. For integer inputs, the default is float64; for floating point inputs, it is the same as the input dtype.

out : ndarray, optional

Alternate output array in which to place the result. The default is None; if provided, it must have the same shape as the expected output, but the type will be cast if necessary. See doc.ufuncs for details.

skipna : bool, optional

If this is set to True, skips any NA values during calculation instead of propagating them.

keepdims : bool, optional

If this is set to True, the axes which are reduced are left in the result as dimensions with size one. With this option, the result will broadcast correctly against the original arr.

Returns :

m : ndarray, see dtype parameter above

If out=None, returns a new array containing the mean values, otherwise a reference to the output array is returned.

See also

average

Weighted average

Notes

The arithmetic mean is the sum of the elements along the axis divided by the number of elements.

Note that for floating-point input, the mean is computed using the same precision the input has. Depending on the input data, this can cause the results to be inaccurate, especially for float32 (see example below). Specifying a higher-precision accumulator using the dtype keyword can alleviate this issue.

样例例如以下:

(5)、tile( )方法

tile函数位于python模块 numpy.lib.shape_base中。他的功能是反复某个数组。比方tile(A,reps),功能是将数组A反复n次,构成一个新的数组。

在tile(A,reps)中

A的类型众多。差点儿全部类型都能够:array, list, tuple, dict, matrix以及基本数据类型int, string, float以及bool类型。

reps的类型也非常多。能够是tuple,list, dict, array, int,bool.但不能够是float, string, matrix类型。

先来看一些样例,然后我们就能够清楚的感受到这个函数究竟是干什么的了。

第一类情况:reps为一个整数,A为一个int、tuple、dict等

第二类情况:reps为一个简单的list,A为一个int、tuple、dict等

总结

从上面能够看出。假定A的维度为d,reps的长度为len

A=[[1,2],[2,3]]的维度为2

reps=[2,3]长度为2

reps=2 长度为1

(1)当d小于len时,tile(A,reps)就是将A中全部元素作为单元。变成一个reps.n1*reps.n2 *…. *reps.nd的新数组,当中reps.n2为reps中的第2个数

为便于说明,举一个样例

如果A为一个二维数组a=array([[1,2],[2,3]]),

reps为一个tuple:reps=[2,3];

tile(A,reps)的含义就是将A中全部元素作为单元。变成一个2*3的新数组。

(2)当d>=len时。将reps长度补足为d,即在reps前面加上d-len个1。tile(A,reps)就是将A中全部元素作为单元,变成一个1*1…reps.n1 reps.n2 …reps.nd

比如a=array([[1,2],[2,3]])

tile(a,2)与tile(a,(1,2))是一样的。

(6)、argsort( )方法

python中的排序问题

numpy包中的argsort函数是对一个数组进行升序排列。

a=[0,1,3,2]

s=argsort(a)

截图例如以下:

结果返回的就是a中全部元素排序后各个元素在a中之前的下标。简单来说就是返回的是下标,而不是值。我们须要通过索引才干获取到对应的值.

上面是将数组或者是tuple等按升序排列,那么你肯定会问,降序排序应该用哪个函数来实现呢,或者说怎么实现呢?

  • 第一种方法:b=argsort(a) #a为你源数组,这里a也能够是tuple

    c=b[::-1] #c就是你想要的降序的索引了。然后你就能够通过c来获取a中的值了

  • 另外一种方法:b=argsort(-a)#a为源数组,不能是tuple

(7)、transpose( )方法

这种方法用于矩阵的转置.

完毕矩阵的转置还能够这样做:A.T来完毕

如果矩阵为A,则y=transpose(A)或者是y=A.T就能够完毕转置,可是有一种情况我们用transpose( )函数进行转置须要注意。

例如以下:

x=linspace(0,4,5) #參数的意义按顺序为:開始值、终值和元素个数

y=transpose(x)  #转置

从上面两个结果对照能够看出,没有转置成功,那么,这样的情况下,怎么能够成功??

原因是由于:x.shape 为(5,),而不是(5,1)导致的

x=linspace(0,4,5)
x.shape=(5,1)
y=transpose(x)

从结果能够看出。这样我们就转置成功了。

自己在学习的过程中遇到后在慢慢补充。

时间: 2024-08-13 18:27:35

numpy函数库中一些经常使用函数的记录的相关文章

【C语言】编写一个函数reverse_string(char * string)(递归实现),将参数字符串中的字符反向排列,不能使用C函数库中的字符串操作函数。

//编写一个函数reverse_string(char * string)(递归实现) //实现:将参数字符串中的字符反向排列. //要求:不能使用C函数库中的字符串操作函数. #include <stdio.h> #include <assert.h> void reverse_string(char const * string) { assert( string != NULL ); if( *string != '\0' ) { string++; reverse_stri

numpy函数库中一些常用函数的记录

numpy函数库中一些常用函数的记录 最近才开始接触python,python中为我们提供了大量的库,不太熟悉,因此在<机器学习实战>的学习中,对遇到的一些函数的用法进行记录. (1)mat( ) numpy函数库中存在两种不同的数据类型(矩阵matrix和数组array),都可以用于处理行列表示的数字元素.虽然他们看起来很相似,但是在这两个数据类型上执行相同的数学运算可以得到不同的结果,其中numpy函数库中matrix与MATLAB中matrices等价. 调用mat( )函数可以将数组转

使用Python PIL库中的Image.thumbnail函数裁剪图片

今天,是我来到博客园的第五天,发现自己还没有头像,想着上传ubuntu系统中我很喜欢的一个背景图片来当头像,但是因为图片过大,上传失败了.那么,我们如何使用python中强大的PIL库来进行图片裁剪呢? from PIL import Image img = Image.open('avatar.jpg') img.thumbnail((480,480)) img.save('thumb.jpg') 首先,找到自己的图片位置,接着如下: 一.从PIL库中导入Image 二.调用Image.ope

苹果浏览器Safari对JS函数库中newDate()函数中的参数的解析中不支持形如“2020-01-01”形式

苹果浏览器safari对new Date('1937-01-01')不支持,用.replace(/-/g, "/")函数替换掉中划线即可 如果不做处理,会报错:invalid date 本解决方案参考:http://stackoverflow.com/questions/4310953/invalid-date-in-safari

[UE4]蓝图函数库小结

蓝图函数库的功能非常强劲,如果在项目中使用的话有时能达到事半功倍的效果. 蓝图函数库,Blueprint Function Library.可以非常方便的将代码中的函数暴露给所有的蓝图使用,同时也提供了很好的代码复用性.完成的蓝图函数库可以非常轻易的在其他项目中使用或者共享给其他人.由于在函数库中定义的所有函数都能在其他的蓝图中访问,可以说是和单例模式的C++代码接合的天然素材.也可以防止为了定义一些泛用的函数而频繁的使用接口继承. 使用起来也是非常的简单明了.类似下面的代码就可以完成一个蓝图函

Python机器学习之NumPy函数库

NumPy函数库是Python开发环境的一个独立模块,而且大多数Python发行版没有默认安装NumPy函数库,因此在安装Python之后必须单独安装NumPy函数库. 在Python shell开发环境中输入下列命令: >>> from numpy import * 如果没报错就表明NumPy函数库正确安装. 上述命令将NumPy函数库中的所有模块引入当前的命名空间. 然后在Python shell开发环境中输入下述命令: >>> random.rand(4,4) a

【机器学习算法实现】kNN算法__手写识别——基于Python和NumPy函数库

[机器学习算法实现]系列文章将记录个人阅读机器学习论文.书籍过程中所碰到的算法,每篇文章描述一个具体的算法.算法的编程实现.算法的具体应用实例.争取每个算法都用多种语言编程实现.所有代码共享至github:https://github.com/wepe/MachineLearning-Demo     欢迎交流指正! (1)kNN算法_手写识别实例--基于Python和NumPy函数库 1.kNN算法简介 kNN算法,即K最近邻(k-NearestNeighbor)分类算法,是最简单的机器学习算

使用ctypes调用C共享库中函数返回值为链表式结构时的方法

/*********************************************************************  * Author  : Samson  * Date    : 02/02/2015  * Test platform:  *              3.13.0-24-generic  *              GNU bash, 4.3.11(1)-release  * ************************************

javaweb学习总结(三十)——EL函数库

一.EL函数库介绍 由于在JSP页面中显示数据时,经常需要对显示的字符串进行处理,SUN公司针对于一些常见处理定义了一套EL函数库供开发者使用. 这些EL函数在JSTL开发包中进行描述,因此在JSP页面中使用SUN公司的EL函数库,需要导入JSTL开发包,并在页面中导入EL函数库,如下所示: MyEclipse自带的JSTL开发包: fn.tld就是EL函数库的对应的tld描述文件,如下图所示: 在页面中使用JSTL定义的EL函数:<%@taglib uri="http://java.su