文档章节

Numpy通用函数介绍

w
 wolfoxliu
发布于 2017/02/25 01:23
字数 993
阅读 1055
收藏 0

一、通用函数:对numpy.array中的数据执行元素级运算的函数

1.求绝对值的函数

# Python里面的abs函数是内置函数,可以求整数,浮点数,复数的绝对值
print abs(2)                  # 结果仍是整数
print abs(-2.6)
print abs(3. + 4j)

2
2.6
5.0

# Python中的fabs函数是math库中的函数,可以求整数,浮点数的绝对值
print math.fabs(-6)          # 结果为浮点数
print math.fabs(-6.8)

6.0
6.8

# 因为abs是内置函数,还可以求矩阵元素的绝对值,而math.fabs没有该功能
arr = np.array([[1, -2, 3], [-4, 5, 0]])
print 'arr:'
print arr
print '------------'
print 'abs(arr):'
print abs(arr)

arr:
[[ 1 -2  3]
 [-4  5  0]]
------------
abs(arr):
[[1 2 3]
 [4 5 0]]

# 求矩阵元素的绝对值还可以使用np.abs、np.absolute和np.fabs函数,np.fabs的速度更快
arr = np.array([[1, -2, 3.8], [-4, 5, 9]])
print 'arr:'
print arr
print '--------------------'
print 'np.abs(arr):'
print np.abs(arr)
print '--------------------'
print 'np.absolute(arr):'
print np.absolute(arr)
print '--------------------'
print 'np.fabs(arr):'
print np.fabs(arr)

arr:
[[ 1.  -2.   3.8]
 [-4.   5.   9. ]]
--------------------
np.abs(arr):
[[ 1.   2.   3.8]
 [ 4.   5.   9. ]]
--------------------
np.absolute(arr):
[[ 1.   2.   3.8]
 [ 4.   5.   9. ]]
--------------------
np.fabs(arr):
[[ 1.   2.   3.8]
 [ 4.   5.   9. ]]

 

2.求平方根的函数

# np.sqrt(arr)求平方根,等价于arr ** 0.5
arr = np.array([[1, 4, 6.25], [16, 25, 36]])
print np.sqrt(arr)

[[ 1.   2.   2.5]
 [ 4.   5.   6. ]]

 

3.求平方的函数

# np.square(arr)求平方,等价于arr ** 2
arr = np.array([[1, 2, 1.5], [0.1, 7, 3]])
print np.square(arr)

[[  1.00000000e+00   4.00000000e+00   2.25000000e+00]
 [  1.00000000e-02   4.90000000e+01   9.00000000e+00]]

 

4.获取两个矩阵对应位置上较大的元素

x = np.array([[-1, 3, 5], [0.1, 7, 3]])
y = np.array([[0, 2, -9], [9, -0.2, 100]])
print 'x:'
print x
print '--------------------------'
print 'y:'
print y
print '--------------------------'
print 'maximum:'
print np.maximum(x, y)

x:
[[-1.   3.   5. ]
 [ 0.1  7.   3. ]]
--------------------------
y:
[[   0.     2.    -9. ]
 [   9.    -0.2  100. ]]
--------------------------
maximum:
[[   0.    3.    5.]
 [   9.    7.  100.]]

 

5.将矩阵元素的整数部分和小数部分分开

arr = np.random.randn(4)            # 标准正态分布
print 'arr:'
print arr
print '-----------------------------------------------------------------------'
print 'modf:'
print np.modf(arr)

arr:
[-0.75150837 -2.16133361 -1.09105508  0.19173811]
-----------------------------------------------------------------------
modf:
(array([-0.75150837, -0.16133361, -0.09105508,  0.19173811]), array([-0., -2., -1.,  0.]))

 

6.meshgrid函数:一个m × n的矩阵与一个p × q的矩阵经过meshgrid之后得到两个pq × mn的矩阵

arr1 = np.arange(1, 3)
arr2 = np.array([[3, 4, 5], [1, 0, 9]])
print 'arr1:'
print arr1
print '----------------------------------------'
print 'arr2:'
print arr2
print '----------------------------------------'
x, y = np.meshgrid(arr1, arr2)
print 'x:'
print x
print '----------------------------------------'
print 'y:'
print y

arr1:
[1 2]
----------------------------------------
arr2:
[[3 4 5]
 [1 0 9]]
----------------------------------------
x:
[[1 2]
 [1 2]
 [1 2]
 [1 2]
 [1 2]
 [1 2]]
----------------------------------------
y:
[[3 3]
 [4 4]
 [5 5]
 [1 1]
 [0 0]
 [9 9]]

 

7.where函数的用法

x_arr = np.array([1, 2, 4, 5])
y_arr = np.array([-1, -2, -4, -5])
z_arr = np.array([True, False, False, True])
result1 = [x if z else y for x, y, z in zip(x_arr, y_arr, z_arr)]
print 'result1:'
print result1
print '----------------------------'
result2 = np.where(z_arr, x_arr, y_arr)
print 'result2:'
print result2

result1:
[1, -2, -4, 5]
----------------------------
result2:
[ 1 -2 -4  5]

 

8.sum函数和mean函数

arr = np.array([[2, 4, 6], [1, 3, 5]])
print 'arr:'
print arr
print '---------------------------------------'
print 'np.mean(arr):'
print np.mean(arr)                 # 等于arr.mean()
print '---------------------------------------'
print 'np.sum(arr):'
print np.sum(arr)                  # 等于arr.sum()
print '---------------------------------------'
print '按列来计算'
print np.mean(arr, axis=0)         # axis=0, 表示按列来计算
print '---------------------------------------'
print '按行来计算'
print np.sum(arr, axis=1)          # axis=1, 表示按行来计算
print '---------------------------------------'

arr:
[[2 4 6]
 [1 3 5]]
---------------------------------------
np.mean(arr):
3.5
---------------------------------------
np.sum(arr):
21
---------------------------------------
按列来计算
[ 1.5  3.5  5.5]
---------------------------------------
按行来计算
[12  9]
---------------------------------------
 

9.any函数和all函数

arr = np.array([False, True, False, False])
print 'arr:'
print arr                            
print '--------------------------------'
print 'arr.any():'
print arr.any()                             # 只要有一个为True,则为True
print '--------------------------------'
print 'arr.all():'
print arr.all()                             # 只要有一个为False,则为False
print '--------------------------------'

arr:
[False  True False False]
--------------------------------
arr.any():
True
--------------------------------
arr.all():
False
--------------------------------

 

10.sort函数

arr = np.random.randn(5)
print 'arr:'
print arr
print '------------------------------------------------------------'
print 'arr.sort():'
arr.sort()                                    # 排序之后,arr本身变化了
print arr
print '------------------------------------------------------------'

arr:
[-0.79041107  1.40614097 -0.81201362 -0.08042629  0.23181889]
------------------------------------------------------------
arr.sort():
[-0.81201362 -0.79041107 -0.08042629  0.23181889  1.40614097]
------------------------------------------------------------

 

11.unique函数:将矩阵元素唯一化,并返回排序好的结果

arr = np.array(['Bob', 'Jame', 'Will', 'Bob', 'Will'])
print 'arr:'
print arr
print '---------------------------------------'
print 'np.unique(arr):'
print np.unique(arr)                    # 将矩阵元素唯一化,并返回排序好的结果
print '---------------------------------------'

arr:
['Bob' 'Jame' 'Will' 'Bob' 'Will']
---------------------------------------
np.unique(arr):
['Bob' 'Jame' 'Will']
---------------------------------------

 

12.in1d函数:判断一个矩阵中是否包含某些元素

arr = np.array([6, 0, 0, 3, 2, 5, 6])
print 'arr:'
print arr
print '---------------------------------------'
print 'np.in1d():'
print np.in1d(arr, [2, 3, 6])                    # 判断一个矩阵中是否包含另一个矩阵的元素
print '---------------------------------------'

arr:
[6 0 0 3 2 5 6]
---------------------------------------
np.in1d():
[ True False False  True  True False  True]
---------------------------------------

 

 

© 著作权归作者所有

共有 人打赏支持
上一篇: MongoDB入门
下一篇: k-近邻算法
w
粉丝 8
博文 13
码字总数 10108
作品 0
杭州
程序员
私信 提问
入门 | 数据科学初学者必知的NumPy基础知识

  选自TowardsDataScience   作者:Ehi Aigiomawu   机器之心编译   参与:李诗萌、路      本文介绍了一些 NumPy 基础知识,适合数据科学初学者学习掌握。      NumPy(Num...

机器之心
04/21
0
0
Python机器学习、深度学习:快速、完全的Numpy入门指南

NumPy是python的第三方科学计算包,全名称为Numerical Python extensions。NumPy包含以下几个功能组件:强大的N维数组对象(可以操控多为数组),优美巧妙的功能(广播)函数,对于线性代数,...

oldpan
2017/10/31
0
0
一篇文章掌握Numpy的基本用法

使用numpy进行向量化运算 从上面的运行结果可以看出,numpy的向量化运算的效率要远远高于python的循环遍历运算(效率相差好几百倍)。 (1ms=1000µs) 2 创建ndarray数组 首先需要导入numpy...

dby_freedom
10/14
0
0
通过python实现神经网络的基础的基础:numpy

numpy是python高性能科学计算和数据分析的基础包,python的很多其他库都构建在numpy之上,因此你要用python做数据分析与挖掘都最好先学一下numpy的基本操作(当然要学numpy首先要把python语言...

单线程程序员
09/30
0
0
从零开始用Python3做数据分析

点击关注 异步图书,置顶公众号 每天与你分享 IT好书 技术干货 职场知识 参与文末话题讨论,每日赠送异步图书 ——异步小编 欢迎来到Python数据分析的世界!如今,Python已成为数据分析和数据...

异步社区
05/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

短视频App开发:短视频爆发式增长

短视频领域依旧热闹非凡,众多巨头纷纷布局短视频领域,推动市场格局的新变化。迹象显示,行业企业正纷纷瞄准AI(人工智能)及5G契机进行布局,力图获得下一步发展优势。 短视频市场火爆 竞争...

ThinkSNS账号
7分钟前
0
0
图形用户界面和交互输入方法---交互式构图技术

基本的定位方法 拖拽 约束 网格 橡皮条方法

中国龙-扬科
15分钟前
0
0
Win10:键盘任一键实现了 “一键开机”

微软自 Windows 10 系统起,默认自己的系统都开始支持“快速开启”。实质上就是“快速开机”的功能。 此功能的特点是:对于装载了 Windows 10 的电脑,开机时,只需要轻轻按一下键盘上的任意...

LivingInFHL
32分钟前
0
0
vue-router的HTML5 History 模式设置

VUE是当下最火爆的前端框架之一,vue-router是vue项目中几乎都会用到的组件,然而体验一时爽,其实坑不少。本篇经验将详细介绍vue-router的两种mode效果和开发测试环境下的问题,并给出解决方...

peakedness丶
36分钟前
1
0
Dubbo 源码分析 - 服务引用

1. 简介 在上一篇文章中,我详细的分析了服务导出的原理。本篇文章我们趁热打铁,继续分析服务引用的原理。在 Dubbo 中,我们可以通过两种方式引用远程服务。第一种是使用服务直联的方式引用...

小刀爱编程
46分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部