1.  元素级别的函数

  元素级别的函数也就是函数对数组中的每一个元素进行运算。例如:

In [10]: arr = np.arange(10)

In [11]: np.sqrt(arr)
Out[11]:
array([ 0. , 1. , 1.41421356, 1.73205081, 2. ,
2.23606798, 2.44948974, 2.64575131, 2.82842712, 3. ]) In [12]: np.exp(arr)
Out[12]:
array([ 1.00000000e+00, 2.71828183e+00, 7.38905610e+00,
2.00855369e+01, 5.45981500e+01, 1.48413159e+02,
4.03428793e+02, 1.09663316e+03, 2.98095799e+03,
8.10308393e+03])

  一元函数(接受一个数组参数)

  

  二元函数:

  

2. 数组级别的函数

  数组级别的函数一般是一些统计函数,像聚合类的函数求和(sum),求平均(mean)等。

In [16]: arr = np.arange(32).reshape(8,4)

In [17]: arr.mean()
Out[17]: 15.5 In [18]: arr.sum()
Out[18]: 496
# 求每一行的平均数
In [19]: arr.mean(axis = 1)
Out[19]: array([ 1.5, 5.5, 9.5, 13.5, 17.5, 21.5, 25.5, 29.5])
# 求每一列的和
In [20]: arr.sum(0)
Out[20]: array([112, 120, 128, 136])

  

3.  布尔数组的函数

  在用上述的函数计算的时候,True为1,False为0,所以:

In [5]: arr
Out[5]:
array([ 0.85760541, -0.41721765, -1.42905838, -0.33368523, 0.4434428 ,
-1.14905993, -1.97609581, -2.00071844, 0.08234022, 0.3282299 ]) In [6]: (arr > 0).sum()
Out[6]: 4 In [7]: type((arr > 0))
Out[7]: numpy.ndarray In [8]: arr > 0
Out[8]: array([ True, False, False, False, True, False, False, False, True, True], dtype=bool)

  any() 函数: 只有有一个为True,返回结果为True

  all() 函数:   所有值都为True的时候,结果才为True

  

In [9]: arr_temp = (arr > 0)

In [10]: arr_temp
Out[10]: array([ True, False, False, False, True, False, False, False, True, True], dtype=bool) In [11]: arr_temp.any()
Out[11]: True In [12]: arr_temp.all()
Out[12]: False

4. 集合函数

  

  

In [17]: arr = np.array([3, 3, 3, 2, 2, 1, 1, 4, 4])

In [18]: np.unique(arr)
Out[18]: array([1, 2, 3, 4])

5.  数据读写函数

  Numpy可以将数据保存以及读取文本文件以及二进制文件。

  5.1 以二进制方式保存数据

    numpy.save 以及 numpy.load 函数可以分别在磁盘上保存和加载数据。 数组默认是以未压缩的原始二进制格式保存在以.npy为后缀名的文件中。

In [25]: arr = np.arange(10)
# 保存arr中的数据
In [26]: np.save("arrays",arr)
# 查看数据
In [27]: !ls -l arrays.npy
-rw-rw-r--. 1 amei amei 160 9月 23 19:03 arrays.npy
# 加载文件中的数据
In [29]: np.load("arrays.npy")
Out[29]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

    也可以用 numpy.savez 将多个数组保存到一个压缩的归档文件中,在读取时候可以进行延迟加载

In [31]: np.savez("archive.npz",a = arr, b = arr )

In [32]: !ls -l archive.npz
-rw-rw-r--. 1 amei amei 514 9月 23 19:11 archive.npz In [33]: arch = np.load("archive.npz")
# 根据需要读取数组内容
In [34]: arch["b"]
Out[34]: array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

  5.2 文本文件的读写

    暂无。。。

6. 线性代数函数

  import numpy.linalg 之后就可以调用以下函数

7. 随机数函数

  numpy.random 比 python内嵌的random 提供更多的函数,而且效率更高, 更适合产生数组级别的样本。

  下面就是分别测试python自带的和numpy的正太分布产生随机数所用的时间:

  

# 产生1000000个随机数
In [9]: N = 1000000 In [12]: from random import normalvariate
# numpy.random 中的随机数函数
In [13]: %timeit np.random.normal(size = N)
10 loops, best of 3: 49.7 ms per loop
# python 自带的随机数函数   
In [14]: %timeit samples = [ normalvariate(0,1) for _ in xrange(N)]
1 loop, best of 3: 1.23 s per loop

  numpy.random 中的函数

  

  

# numpy.random 中的随机数函数

NumPy 学习(3): 通用函数的更多相关文章

  1. (转)Python数据分析之numpy学习

    原文:https://www.cnblogs.com/nxld/p/6058572.html https://morvanzhou.github.io/tutorials/data-manipulat ...

  2. 【大数据技术能力提升_2】numpy学习

    numpy学习 标签(空格分隔): numpy python 数据类型 5种类型:布尔值(bool),整数(int),无符号整数(uint).浮点(float).复数(complex) 支持的原始类型 ...

  3. Python数据分析:Numpy学习笔记

    Numpy学习笔记 ndarray多维数组 创建 import numpy as np np.array([1,2,3,4]) np.array([1,2,3,4,],[5,6,7,8]) np.ze ...

  4. NumPy学习笔记 三 股票价格

    NumPy学习笔记 三 股票价格 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.&l ...

  5. NumPy学习笔记 二

    NumPy学习笔记 二 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  6. NumPy学习笔记 一

    NumPy学习笔记 一 <NumPy学习笔记>系列将记录学习NumPy过程中的动手笔记,前期的参考书是<Python数据分析基础教程 NumPy学习指南>第二版.<数学分 ...

  7. 数据分析之Pandas和Numpy学习笔记(持续更新)<1>

    pandas and numpy notebook        最近工作交接,整理电脑资料时看到了之前的基于Jupyter学习数据分析相关模块学习笔记.想着拿出来分享一下,可是Jupyter导出来h ...

  8. NumPy学习(索引和切片,合并,分割,copy与deep copy)

    NumPy学习(索引和切片,合并,分割,copy与deep copy) 目录 索引和切片 合并 分割 copy与deep copy 索引和切片 通过索引和切片可以访问以及修改数组元素的值 一维数组 程 ...

  9. NumPy学习(让数据处理变简单)

    NumPy学习(一) NumPy数组创建 NumPy数组属性 NumPy数学算术与算数运算 NumPy数组创建 NumPy 中定义的最重要的对象是称为 ndarray 的 N 维数组类型. 它描述相同 ...

  10. numpy 学习笔记

    numpy 学习笔记 导入 numpy 包 import numpy as np 声明 ndarray 的几种方法 方法一,从list中创建 l = [[1,2,3], [4,5,6], [7,8,9 ...

随机推荐

  1. 20145213《Java程序设计》第七周学习总结

    20145213<Java程序设计>第七周学习总结 教材学习内容总结 周末快乐的时间总是短暂的,还没好好感受就到了要写博客的周日.有人喟叹时间都去哪儿了,那本周我们就来认识一下Java里的 ...

  2. 在iOS 应用中直接跳转到appstore的方法

    找到应用程序的描述链接,比如:http://itunes.apple.com/gb/app/yi-dong-cai-bian/id391945719?mt=8 然后将 http:// 替换为 itms ...

  3. quartz+spring 实现多任务动态定时器问题

    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w ...

  4. java 设置允许ajax XMLHttpRequest 请求跨域访问

    怎样才能算跨域?协议,域名,端口都必须相同,才算在同一个域. 方案1: 使用XMLHttpRequest...  异步请求不能跨域访问,除非要访问的网页响应头信息设置为允许跨域访问. 将网页设置为允许 ...

  5. C++面向对象基础知识

    多态是为了接口重用,封装和继承是为了代码重用 子类重新定义父类虚函数的方法叫做继承,不是重载! 一.基本概念 对于C++中经常出现的函数名称相同但是参数列表或者返回值不同的函数,主要存在三种情况: 1 ...

  6. Swift - 代码创建单例

    创建单例的方法 import UIKit //创建一个单例类 class SingleInstance: NSObject { //在单例类中,有一个用来共享数据的数组 var datas = [St ...

  7. hdu 2057 A+B

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=2057 For each test case,print the sum of A and B in h ...

  8. self和parent的用法

    总结 self  , parent 的用法               只能用在类的内部 self  本类  (不要理解成本对象) parent 父类 在引入自身的静态属性/静态方法 以及父类的方法时 ...

  9. EmguCV学习 与opencv的区别和联系

    openCV是因特尔的一个开源的视觉库,里面几乎包含了所有的图像处理的经典算法,并且采用C和少量的C++编写,运行效率很高,对于做图像处理这方面工作的,认识opencv是必须的工作.不过opencv有 ...

  10. oracle数据库出现“批处理中出现错误: ORA-00001: 违反唯一约束条件”解决方法

    最近使用oraclede impdp工具全库导入数据库时,在数据库里面使用出现如下情况. SQL state : 违反唯一约束条件 (GDXAORCL.SYS_C0055359) ; nested e ...