文档章节

Numpy通用函数介绍

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

 

 

© 著作权归作者所有

共有 人打赏支持
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
小蛇学python(16)numpy高阶用法

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

跌跌撞撞小红豆
07/12
0
0
从零开始用Python3做数据分析

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

异步社区
05/19
0
0
Python 机器学习基础(二)——Numpy 篇

本文是 Python 机器学习基础系列文章的第二篇——Numpy 篇。 Numpy Numpy 是 Python 的一种开源数值计算扩展包,它可以用于存储和处理大型矩阵,比 Python 自带的嵌套列表结构要高效得多。 ...

withchris
05/23
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring JdbcTemplate模板模式与回调结合分析

在看Spring的JdbcTemplate的时候,看到其将模板模式和回调模式结合使用的实现,可以精妙的解决很多的问题。详见Spring中涉及的设计模式总结中的关于模板模式和回调模式结合的具分析,本文利用...

宸明
31分钟前
0
0
docker update:更新一个或多个容器的配置

更新容器的配置 docker update:更新一个或多个容器的配置。 具体内容请访问:https://docs.docker.com/engine/reference/commandline/update/#options 语法:docker update [OPTIONS] CONTA...

lwenhao
今天
1
0
unload事件

unload事件不触发的原因分析 1.代码位置不对,应该优先加载,不能放到回调函数中 2.浏览器不支持 3.最可能的原因,unload事件中触发的函数是一个异步执行的函数,浏览器是不允许在窗口关闭之后在...

狮子狗
今天
1
0
DbForge Schema Compare for MySQL入门教程:如何连接到数据库

【dbForge Schema Compare for MySQL下载】 要创建连接: 1. 在“Connection” 工具栏上单击“New Connection”按钮 。 2. 在“Host” 框中输入主机名。 3. 在“Port” 框中输入端口信息。默...

Miss_Hello_World
今天
2
0
spring中事务的应用

spring中事务管理的两种方式 编程式事务使用TransactionTemplate或者直接使用底层的PlatformTransactionManager。对于编程式事务管理,spring推荐使用TransactionTemplate。 声明式事务是建立...

狂奔的熊二
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部