在本科阶段,我们常用的科学计算工具是MATLAB。下面介绍python的一个非常好用而且功能强大的科学计算库——Numpy。

  • a powerful N-dimensional array object(一个强大的N维数组对象)
  • sophisticated (broadcasting) functions (先进的(广播?)函数)
  • tools for integrating C/C++ and Fortran code(集成的C / C++和Fortran代码工具)
  • useful linear algebra, Fourier transform, and random number capabilities(有用的线性代数,傅立叶变换和随机数能力)

    以上是官方文档的介绍,具体资料可以按参考这个网站: http://www.numpy.org/

    依旧是pip install numpy安装这个包。我们在ipython中举一些例子来学习它的一些常用操作。当然在此之前,建议先了解一下矩阵等相关的数学知识,就当温习一下大学的线代高数部分了。

 #导入numpy
>>> import numpy as np
#生成一个指定内容的数组
>>> a = np.arange(15).reshape(3, 5)
>>> a
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]])
>>> a.shape #数组行列数
(3, 5)
>>> a.ndim #数组维度
2
>>> a.dtype.name #数组中元素类型
'int64'
>>> a.itemsize #数组中每个元素的字节大小
8
>>> a.size #数组元素的总数
15
>>> type(a) #输出a的属性
<type 'numpy.ndarray'>
#直接给定元素生成数组
>>> b = np.array([6, 7, 8])
>>> b
array([6, 7, 8])
>>> type(b)
<type 'numpy.ndarray'>

    numpy可以生成指定的数组。

 C:\Users\Administrator\Desktop
λ ipython
Python 3.6.4 (v3.6.4:d48eceb, Dec 19 2017, 06:54:40) [MSC v.1900 64 bit (AMD64)]
Type 'copyright', 'credits' or 'license' for more information
IPython 6.2.1 -- An enhanced Interactive Python. Type '?' for help. In [1]: import numpy as np In [2]: a=np.zeros([3,4]) #生成全零阵 In [3]: a
Out[3]:
array([[0., 0., 0., 0.],
[0., 0., 0., 0.],
[0., 0., 0., 0.]]) In [4]: b=np.ones([3,4]) #生成全1阵 In [5]: b
Out[5]:
array([[1., 1., 1., 1.],
[1., 1., 1., 1.],
[1., 1., 1., 1.]]) In [6]: c=np.random.rand(3,4) #生成随机阵 In [7]: c
Out[7]:
array([[0.36417168, 0.24336724, 0.78826727, 0.42894367],
[0.77198615, 0.95897315, 0.25628233, 0.53995372],
[0.02777746, 0.25093856, 0.14544893, 0.10475779]]) In [8]: d=np.eye(3) #生成单位阵 In [9]: d
Out[9]:
array([[1., 0., 0.],
[0., 1., 0.],
[0., 0., 1.]]) In [10]: e=np.mat([[1,2,3],[4,5,6],[7,8,9]]) #矩阵化 In [11]: e
Out[11]:
matrix([[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]) In [12]: f=np.power(e,2) #计算N次幂 In [13]: f
Out[13]:
matrix([[ 1, 4, 9],
[16, 25, 36],
[49, 64, 81]], dtype=int32) In [14]: g=f.T #求转置矩阵 In [15]: g
Out[15]:
matrix([[ 1, 16, 49],
[ 4, 25, 64],
[ 9, 36, 81]], dtype=int32) In [16]:

    下面对array()和mat()做一个区分。初学者很容易混淆。

    np.array(a)  是将列表数组化, 它与另一个narray的乘法并不是按照矩阵乘法进行的,而是对应元素相乘 。而mat(),在上面的例子可以清楚地看出来,他生成的对象是一个matrix。即将数组矩阵化。对矩阵使用shape()方法,会返回矩阵的维度,而数组则会返回它的行和列。详细资料可以参考官方文档。

python数据分析工具包(1)——Numpy(一)的更多相关文章

  1. python数据分析三剑客之: Numpy

    数据分析三剑客之: Numpy 一丶Numpy的使用 ​ numpy 是Python语言的一个扩展程序库,支持大维度的数组和矩阵运算.也支持针对数组运算提供大量的数学函数库 创建ndarray # 1 ...

  2. python数据分析工具包(2)——Numpy(二)

    上一篇文章简单地介绍了numpy的一些基本数据类型,以及生成数组和矩阵的操作.下面我们来看一下矩阵的基本运算.在线性代数中,常见的矩阵运算包括,计算行列式.求逆矩阵.矩阵的秩等.下面我们来一一实现. ...

  3. python数据分析工具包(3)——matplotlib(一)

    前两篇文章简单介绍了科学计算Numpy的一些常用方法,还有一些其他内容,会在后面的实例中学习.下面介绍另一个模块--Matplotlib. Matplotlib是一个Python 2D绘图库,试图让复 ...

  4. python 数据分析工具之 numpy pandas matplotlib

    作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...

  5. Python的工具包[0] -> numpy科学计算 -> numpy 库及使用总结

    NumPy 目录 关于 numpy numpy 库 numpy 基本操作 numpy 复制操作 numpy 计算 numpy 常用函数 1 关于numpy / About numpy NumPy系统是 ...

  6. Python数据分析工具库-Numpy 数组支持库(一)

    1 Numpy数组 在Python中有类似数组功能的数据结构,比如list,但在数据量大时,list的运行速度便不尽如意,Numpy(Numerical Python)提供了真正的数组功能,以及对数据 ...

  7. $python数据分析基础——初识numpy库

    numpy库是python的一个著名的科学计算库,本文是一个quickstart. 引入:计算BMI BMI = 体重(kg)/身高(m)^2 假如有如下几组体重和身高数据,让求每组数据的BMI值: ...

  8. Python数据分析工具库-Numpy 数组支持库(二)

    1 shape变化及转置 >>> a = np.floor(10*np.random.random((3,4))) >>> a array([[ 2., 8., 0 ...

  9. 【Python 数据分析】module 'numpy' has no attribute 'array'

    安装好Numpy模块后,开始做了几个小测试都可以运行,但是当我创建numpy.py这个文件后 numpy.py import numpy y = numpy.array([[11,4,2],[2,6, ...

随机推荐

  1. robots书写说明:

    "User-Agent"搜索引擎的名字. 针对所有搜索引擎写法:User-Agent: *,针对百度搜索引擎写法:User-Agent:Baiduspider "Allo ...

  2. dedecms利用memberlist标签调用自定义会员模型的会员信息

    [摘要]本文讲一下dedecms如何利用memberlist标签调用自定义会员模型的会员信息. dedecms利用memberlist标签调用自定义会员模型的会员信息,这个问题找了很久,官方论坛提问过 ...

  3. js双向绑定和地址传递带来的痛苦解决方案之对象拷贝

    function cloneObj(obj) { var newObj = {}; if (obj instanceof Array) { newObj = []; } for (var key in ...

  4. Android_基础控件

    目录 一.文本控件TextView 二.按钮控件Button 三.图片控件ImageView 四.输入控件EditText 一.文本控件TextView 1.布局文件 <TextView and ...

  5. python3 第十二章 - 数据类型之List(列表)

    Python内置的一种数据类型是列表:list. list是一种有序的集合 可以随时添加和删除其中的元素. 它可以作为一个方括号内的逗号分隔值出现. 列表的数据项不需要具有相同的类型 创建一个列表,只 ...

  6. [Qt Quick] No rule to make target问题解决办法

    [问题描述] 修改项目中资源的qml文件名或删除无用资源文件后,重新构建项目时,会出现类似如下的问题提示: No rule to make target 'aaa', needed by 'bbb'. ...

  7. 解决跨站脚本注入,跨站伪造用户请求,sql注入等http安全漏洞

    跨站脚本就是在url上带上恶意的js关键字然后脚本注入了,跨站伪造用户请求就是没有经过登陆,用超链接或者直接url上敲地址进入系统,类似于sql注入这些都是安全漏洞. sql注入 1.参数化查询预处理 ...

  8. [JAVA] - 从 m 个元素中随机选中 n 个

    之前业务中曾经遇到过从m个元素中选取 n 个的需求,当时只是跑循环根据长度进行随机选取,然后放入 Set 中去重,一直到收集到足够的个数. 这样做的缺点很明显,当剩下的元素个数越少的时候,选取的元素越 ...

  9. IEEE754 处理数据变换

    public  class IEEE754 { /// <summary> /// 将二进制值转ASCII格式十六进制字符串 /// </summary> /// <pa ...

  10. try{}catch(e){}不能捕获到异常

    只能捕获到ReferenceError异常,I don't know why. try{ aa();//这是一个未被定义的方法 }catch(e){ if(e instanceof Reference ...