文档章节

Numpy通用函数介绍

w
 wolfoxliu
发布于 2017/02/25 01:23
字数 993
阅读 1524
收藏 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...

机器之心
2018/04/21
0
0
通过python实现神经网络的基础的基础:numpy

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

单线程程序员
2018/09/30
0
0
Python机器学习、深度学习:快速、完全的Numpy入门指南

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

oldpan
2017/10/31
0
0
从零开始用Python3做数据分析

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

异步社区
2018/05/19
0
0
小蛇学python(16)numpy高阶用法

如果只是从事简单的数据分析,其实numpy的用处并不是很大。简单了解一下numpy,学好pandas已经够用,尤其是对于结构化或表格化数据。但是精通面向数组的编程和思维方式是成为python科学计算牛...

跌跌撞撞小红豆
2018/07/12
0
0

没有更多内容

加载失败,请刷新页面

加载更多

centos7重置密码、单用户模式、救援模式、ls命令、chmod命令

在工作当中如果我们错误的配置了文件使服务器不能正常启动或者忘记密码不能登录系统,如何解决这些问题呢?重装系统是可以实现的,但是往往不能轻易重装系统的,下面用忘记密码作为例子讲解如...

李超小牛子
今天
3
0
Python如何开发桌面应用程序?Python基础教程,第十三讲,图形界面

当使用桌面应用程序的时候,有没有那么一瞬间,想学习一下桌面应用程序开发?行业内专业的桌面应用程序开发一般是C++,C#来做,Java开发的也有,但是比较少。本节课会介绍Python的GUI(图形用...

程序员补给栈
今天
5
0
kafka在的使用

一、基本概念 介绍 Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。 这个独特的设计是什么样的呢? 首先让我们看几个基本的消息系统...

狼王黄师傅
今天
3
0
Android JNI总结

0x01 JNI介绍 JNI是Java Native Interface的缩写,JNI不是Android专有的东西,它是从Java继承而来,但是在Android中,JNI的作用和重要性大大增强。 JNI在Android中起着连接Java和C/C++层的作...

天王盖地虎626
昨天
3
0
大数据教程(11.8)Hive1.2.2简介&初体验

上一篇文章分析了Hive1.2.2的安装,本节博主将分享Hive的体验&Hive服务端和客户端的使用方法。 一、Hive与hadoop直接的关系 Hive利用HDFS存储数据,利用MapReduce查询数据。 二、Hive与传统数...

em_aaron
昨天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部