Numpy:

# NumPy库介绍

# NumPy的安装

#  NumPy系统是Python的一种开源的数值计算扩展
#  可用来存储和处理大型矩阵。
#  因为不是Python的内嵌模块,因此使用前需要安装。
#  可以利用Python自带的pip工具自动安装。
#  或者选择访问下面的网站,下载与Python版本匹配的exe安装文件手动安装。
# http://sourceforge.net/projects/numpy/files/NumPy/
#  安装完成后,打开Python3.4,运行命令import numpy,若不出现错误则说明安装成功。 # NumPy的组成与功能
#  Numpy (Numeric Python)可以被理解为一个用python实现的科学计算包,包括:
#  强大的N维数组对象Array;
#  成熟的函数库;
#  实用的线性代数、傅里叶变换和随机数生成函数。
#  提供了许多高级的数值编程工具,如:矩阵数据类、矢量处理,以及精密的运算库。 # 基础知识
#  NumPy的主要对象是同种元素的多维数组。
#  维度(dimensions)叫做轴(axes)。
#  轴的个数叫做秩(rank)。
#  例如,在3D空间一个点的坐标 [1, 2, 3] 是一个秩为1的数组,因为它只有一个轴。轴长度为3.
#  例如,在[[ 1., 0., 0.],[0.,1.,2.]]这个例子中,数组的秩为2。第一个维度长度为2,第二个维度长度为3.
#  NumPy的数组类被称作ndarray,通常被称作数组。
#  注意numpy.array和标准Python库类array并不相同,后者只处理一维数组和提供少量功能。
#  ndarray对象属性主要见下表: 例如其中.shape表示数组的维度, .size表示数组元素的总个数。
#
#---属性---------解释--------------
#ndarray.shape:数组的维度,这是一个指示数组在每个维度上大小的整数元组。
#ndarray.size:数组元素的总个数,等于shape属性中元组元素的乘积。
#ndarray.dtype:一个用来描述数组中元素类型的对象,可以通过使用标准Python类型创造dtype。
#ndarray.itemsize:数组中每个元素字节的大小。
#ndarry.data:包含实际数组元素的缓冲区,通常我们通过索引引用数组元素,不使用这个属性。
#
from numpy import *
#例子: from numpy import *
a=arange(15).reshape(3,5)
print(a)
# [[ 0 1 2 3 4]
# [ 5 6 7 8 9]
# [10 11 12 13 14]]
print(a.shape) #(3, 5)
print(a.ndim) #
print(a.dtype.name) #'int32'
print(a.itemsize) #
print(a.size) #
print(type(a)) #<class 'numpy.ndarray'>
b=array([6,7,8])
print(b) #[6 7 8]
print(type(b)) #<class 'numpy.ndarray'> # 创建数组(方法一)
#  创建数组的方法有多种,比如可以使用array函数利用常规的Python列表和元组创造数组。所创建的数组类型由原序列中的元素类型决定。示例如下:
from numpy import *
a=array([2,3,4])
print(a) #[2 3 4]
print(a.dtype) #int32
b=array([1.2,3.5,5.1])
print(b.dtype) #float64 #一个常见的错误包括用多个数值参数调用‘array’而不是提供一个由数值组成的列表作为一个参数。
# a=array(1,2,3,4) #wrong
# Traceback (most recent call last):
# File "I:/GithubCodes/PracticeOfPython/PracticeOfPython/201803/180317-Numpy.py", line 69, in <module>
# a=array(1,2,3,4) #wrong
# ValueError: only 2 non-keyword arguments accepted
a=array([1,2,3,4]) #Right
c=array([[1,2],[3,4]],dtype=complex)
print(c)
# [[ 1.+0.j 2.+0.j]
# [ 3.+0.j 4.+0.j]] # 创建数组(方法二)
#  NumPy提供了一些使用占位符创建数组的函数。
#  例如: 函数zeros创建一个全是0的数组,函数ones创建一个全1的数组,函数empty创建一个内容随机并且依赖与内存状态的数组。默认创建的数组类型(dtype)都是float64 。示例如下:
print(zeros((3,4)))
# [[ 1.+0.j 2.+0.j]
# [ 3.+0.j 4.+0.j]]
# [[ 0. 0. 0. 0.]
# [ 0. 0. 0. 0.]
# [ 0. 0. 0. 0.]] print(ones((2,3,4),dtype=int16)) #dtype can also be specified指定
# [[[1 1 1 1]
# [1 1 1 1]
# [1 1 1 1]]
#
# [[1 1 1 1]
# [1 1 1 1]
# [1 1 1 1]]] print(empty((2,3)))
# [[ 1.39069238e-309 1.39069238e-309 1.39069238e-309]
# [ 1.39069238e-309 1.39069238e-309 1.39069238e-309]] # 创建数组(方法三)
#  此外NumPy提供一个arange的函数返回数组,示例如下:
print(arange(10,30,5))
# [10 15 20 25]
print(arange(0,2,0.3)) # it accepts float arguments
# [ 0. 0.3 0.6 0.9 1.2 1.5 1.8] # 打印数组
#  打印数组时,NumPy以类似嵌套列表的形式显示。
#  示例如下:其中一维数组被打印成行,二维数组成矩阵,三维数组成矩阵列表。
a=arange(6) #1-d array
print(a)
# [0 1 2 3 4 5] b=arange(12).reshape(4,3) #2-d array
print(b)
# [[ 0 1 2]
# [ 3 4 5]
# [ 6 7 8]
# [ 9 10 11]] c=arange(24).reshape(2,3,4) #3-d array
print(c)
# [[[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
#
# [[12 13 14 15]
# [16 17 18 19]
# [20 21 22 23]]] # 基本运算
#  数组的算术运算是按元素进行。新的数组被创建并且被结果来填充。
#  NumPy中的乘法运算符*指示按元素计算
#  矩阵乘法可以使用dot函数或创建矩阵对象实现。示例如下:
a=array([20,30,40,50])
b=arange(4)
print(b) #b为:[0 1 2 3]
c=a-b
print(c) #c为:[20 29 38 47]
d=b**2
print(d) #d 为: [0 1 4 9]
e=10*sin(a)
print(e) #e为:[ 9.12945251 -9.88031624 7.4511316 -2.62374854]
f=a<35
print(f) #f 为: [ True True False False] #  非数组的运算可以利用ndarrary类方法实现。
#  通用函数(ufunc) -- NumPy提供常见的数学函数。如sin cos和exp 如sin, cos和exp。
#  在NumPy里这些函数作用按数组的元素运算,产生一个数组作为输出。示例如下:
a=random.random((2,3))
print(a)
# [[ 0.176555 0.98220276 0.09996688]
# [ 0.02275491 0.139681 0.22131763]]
print(a.sum()) #1.64247817609
print(a.min()) #0.0227549118614
print(a.max()) #0.982202755153 b=arange(12).reshape(3,4)
print(b)
# [[ 0 1 2 3]
# [ 4 5 6 7]
# [ 8 9 10 11]]
print(b.sum(axis=0)) #sum of each column
# [12 15 18 21]
print(b.min(axis=1)) #min of each row
# [0 4 8]
print(b.cumsum(axis=1)) #cumulative累加 sum along each row
# [[ 0 1 3 6]
# [ 4 9 15 22]
# [ 8 17 27 38]] # 索引、切片与迭代
#  数组还可以被索引、切片和迭代,示例如下:
a=arange(10)**3
print(a) #[ 0 1 8 27 64 125 216 343 512 729]
print(a[2]) #
print(a[2:5]) #[ 8 27 64]
b=a[:6:2]=-1000 #equivalent to a[0:6:2]=-1000; from start to position 6,exclusive, set every 2nd element to -1000
print(b) #-1000? 答案应该是:[-1000,1,-1000,27,-1000,125,216,343,512,729
print(a[::-1]) #reversed a
# [ 729 512 343 216 125 -1000 27 -1000 1 -1000] for i in a :
print(i**(1/3.),)
# nan
# 1.0
# nan
# 3.0
# nan
# 5.0
# 6.0
# 7.0
# 8.0
# 9.0 # 矩阵运算
#  NumPy对于多维数组的运算,缺省情况下并不使用矩阵运算,对数组进行矩阵运算,可调用相应的函数。
#  numpy库也提供了matrix类,使用matrix类创建的是矩阵对象,它们的加减乘除运算缺省采用矩阵方式计算,用法和matlab十分类似。示例如下:
a=matrix([[1,2,3],[5,5,6],[7,9,9]])
print(a*a**-1)
# [[ 1.00000000e+00 0.00000000e+00 0.00000000e+00]
# [ 4.44089210e-16 1.00000000e+00 4.44089210e-16]
# [ 0.00000000e+00 -4.44089210e-16 1.00000000e+00]] #  矩阵中更高级的一些运算可以在NumPy的线性代数子库linalg中找到。
# 例如inv函数计算逆矩阵,solve函数可以求解多元一次方程组程组。
函数和方法的总览
 NumPy库提供作用丰富的函数和方法,下面是一个分类排列汇目录总揽,可通过手册即用即学。

---创建数组的函数:
arang,array,cpoy,... ---转化的函数:
astype,atleast 1d ---操作的函数:
array split ---询问的函数:
all,any,nonzero,where

Python 的 Numpy 库的更多相关文章

  1. Python的numpy库下的几个小函数的用法

    numpy库是Python进行数据分析和矩阵运算的一个非常重要的库,可以说numpy让Python有了matlab的味道 本文主要介绍几个numpy库下的小函数. 1.mat函数 mat函数可以将目标 ...

  2. Python数据分析numpy库

    1.简介 Numpy库是进行数据分析的基础库,panda库就是基于Numpy库的,在计算多维数组与大型数组方面使用最广,还提供多个函数操作起来效率也高 2.Numpy库的安装 linux(Ubuntu ...

  3. Python之Numpy库常用函数大全(含注释)

    前言:最近学习Python,才发现原来python里的各种库才是大头! 于是乎找了学习资料对Numpy库常用的函数进行总结,并带了注释.在这里分享给大家,对于库的学习,还是用到时候再查,没必要死记硬背 ...

  4. Python之Numpy库常用函数大全(含注释)(转)

    为收藏学习,特转载:https://blog.csdn.net/u011995719/article/details/71080987 前言:最近学习Python,才发现原来python里的各种库才是 ...

  5. 【python】numpy库和matplotlib库学习笔记

    Numpy库 numpy:科学计算包,支持N维数组运算.处理大型矩阵.成熟的广播函数库.矢量运算.线性代数.傅里叶变换.随机数生成,并可与C++/Fortran语言无缝结合.树莓派Python v3默 ...

  6. Python之numpy库

    NumPy库知识结构 更多详细内容参考:http://www.cnblogs.com/zhanglin-0/p/8504635.html

  7. Python基础——numpy库的使用

    1.numpy库简介:    NumPy提供了许多高级的数值编程工具,如:矩阵数据类型.矢量处理,以及精密的运算库.专为进行严格的数字处理而产生. 2.numpy库使用: 注:由于深度学习中存在大量的 ...

  8. python中numpy库的一些使用

    想不用第三方库实现点深度学习的基础部分,发现numpy真的好难(笑),在此做点遇到的函数的笔记 惯例官方文档:https://docs.scipy.org/doc/numpy-1.16.1/refer ...

  9. python中numpy库ndarray多维数组的的运算:np.abs(x)、np.sqrt(x)、np.modf(x)等

    numpy库提供非常便捷的数组运算,方便数据的处理. 1.数组与标量之间可直接进行运算 In [45]: aOut[45]:array([[ 0, 1, 2, 3], [ 4, 5, 6, 7], [ ...

随机推荐

  1. int to string

    int i=9; stringstream stream; stream << i;stream.str()

  2. [Android Pro] Android源码编译之Nexus5真机编译

    reference to : http://blog.csdn.net/liu1075538266/article/details/51272398 1.   前言 在Android安全的研究工作中, ...

  3. 机器学习实战:用nodejs实现人脸识别

    机器学习实战:用nodejs实现人脸识别   在本文中,我将向你展示如何使用face-recognition.js执行可靠的人脸检测和识别 . 我曾经试图找一个能够精确识别人脸的Node.js库,但是 ...

  4. 我所遭遇过的游戏中间件---HumanIK

    我所遭遇过的游戏中间件---HumanIK Autodesk HumanIK游戏中间件,为游戏创建更加可信.真实的角色动画.该中间件的全身逆向运动(FBIK)系统支持角色真实地与所在环境及其它角色进行 ...

  5. Informatica 常用组件Source Qualifier之七 使用排序端口

    使用已排序端口时,PowerCenter 将添加端口至默认查询中的 ORDER BY 子句.PowerCenter Server 将添加配置的端口号,从源限定符转换的顶部开始.在映射中包括以下任何转换 ...

  6. [每日一题] OCP1z0-047 :2013-08-04 INSERT --- WITH CHECK OPTION

    这题是考:insertWITH CHECK OPTION的用法 insert into (<select clause> WITH CHECKOPTION) values (...) 这样 ...

  7. C#版查杀本地/远程进程工具

    xkill [原创] Author: R&S E-mail: yrwithsh@vip.sina.com HomePage: fz5fz.yeah.net Date: 10/04/2003 u ...

  8. (转)Unity3D - 性能优化之Draw Call

    Unity(或者说基本所有图形引擎)生成一帧画面的处理过程大致可以这样简化描述:引擎首先经过简单的可见性测试,确定摄像机可以看到的物体,然后把这些物体的顶点(包括本地位置.法线.UV等),索引(顶点如 ...

  9. [Backbone] Verying Views

    Below we have our AppointmentsView instance rendering and then taking the rendered HTML and insertin ...

  10. C#.NET常见问题(FAQ)-interface接口如何理解

    个人把interface理解为一种比较特殊的判断技巧,不是常规的变量类型比如判断字符串,判断数组,而是判断类的实例是否拥有某些属性或者方法(比如有十个女的穿一样的衣服,头上盖住,让新郎去猜哪一个是他的 ...