python数据分析工具包(1)——Numpy(一)
在本科阶段,我们常用的科学计算工具是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(一)的更多相关文章
- python数据分析三剑客之: Numpy
数据分析三剑客之: Numpy 一丶Numpy的使用 numpy 是Python语言的一个扩展程序库,支持大维度的数组和矩阵运算.也支持针对数组运算提供大量的数学函数库 创建ndarray # 1 ...
- python数据分析工具包(2)——Numpy(二)
上一篇文章简单地介绍了numpy的一些基本数据类型,以及生成数组和矩阵的操作.下面我们来看一下矩阵的基本运算.在线性代数中,常见的矩阵运算包括,计算行列式.求逆矩阵.矩阵的秩等.下面我们来一一实现. ...
- python数据分析工具包(3)——matplotlib(一)
前两篇文章简单介绍了科学计算Numpy的一些常用方法,还有一些其他内容,会在后面的实例中学习.下面介绍另一个模块--Matplotlib. Matplotlib是一个Python 2D绘图库,试图让复 ...
- python 数据分析工具之 numpy pandas matplotlib
作为一个网络技术人员,机器学习是一种很有必要学习的技术,在这个数据爆炸的时代更是如此. python做数据分析,最常用以下几个库 numpy pandas matplotlib 一.Numpy库 为了 ...
- Python的工具包[0] -> numpy科学计算 -> numpy 库及使用总结
NumPy 目录 关于 numpy numpy 库 numpy 基本操作 numpy 复制操作 numpy 计算 numpy 常用函数 1 关于numpy / About numpy NumPy系统是 ...
- Python数据分析工具库-Numpy 数组支持库(一)
1 Numpy数组 在Python中有类似数组功能的数据结构,比如list,但在数据量大时,list的运行速度便不尽如意,Numpy(Numerical Python)提供了真正的数组功能,以及对数据 ...
- $python数据分析基础——初识numpy库
numpy库是python的一个著名的科学计算库,本文是一个quickstart. 引入:计算BMI BMI = 体重(kg)/身高(m)^2 假如有如下几组体重和身高数据,让求每组数据的BMI值: ...
- Python数据分析工具库-Numpy 数组支持库(二)
1 shape变化及转置 >>> a = np.floor(10*np.random.random((3,4))) >>> a array([[ 2., 8., 0 ...
- 【Python 数据分析】module 'numpy' has no attribute 'array'
安装好Numpy模块后,开始做了几个小测试都可以运行,但是当我创建numpy.py这个文件后 numpy.py import numpy y = numpy.array([[11,4,2],[2,6, ...
随机推荐
- HDU 5914 Triangle(打表——斐波那契数的应用)
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=5914 Problem Description Mr. Frog has n sticks, whos ...
- 如何设置让网站禁止被爬虫收录?robots.txt
robot.txt只是爬虫禁抓协议,user-agent表示禁止哪个爬虫,disallow告诉爬出那个禁止抓取的目录. 如果爬虫够友好的话,会遵守网站的robot.txt内容. 一个内部业务系统,不想 ...
- WEB应用:预览
主题 建立WEB应用通用目录 配置classpath 将WEB应用注册到服务器中 使用制定url前缀调用WEB应用的servlet.html.jsp 为所有自己编写的servlet制定url 建立WE ...
- [拾 得] zip gzip bzip2 & tar 压缩/打包 四大金刚
坚持知识分享,该文章由Alopex编著, 转载请注明源地址: http://www.cnblogs.com/alopex/ 索引: 介绍压缩和打包 gzip bzip2 zip 的基本使用 gz ...
- MyEclipse或Eclipse导出JavaDoc中文乱码问题解决
- 利用神经网络算法的C#手写数字识别
欢迎大家前往云+社区,获取更多腾讯海量技术实践干货哦~ 下载Demo - 2.77 MB (原始地址):handwritten_character_recognition.zip 下载源码 - 70. ...
- 网口up不起来问题排查
最近处理一个问题,发现有的网口up不起来. ethtool eth6 Settings for eth6: Supported ports: [ FIBRE ] Support ...
- Shell中脚本变量的作用域
原文地址:http://blog.csdn.net/abc86319253/article/details/46341839 在shell中定义函数可以使代码模块化,便于复用代码.不过脚本本身的 ...
- _3_body_标签
创:20_3_2017修:5_4_2017 什么是div标签? div 双 -- div标签没有任何默认属性 -可以任意写入样式和内容,和 水一样,水自然平凡而又最多 什么是h1标签? h1 标题(双 ...
- mybatis传参的几种方式
1,@Param @参考文章 @Select("select s_id id,s_name name,class_id classid from student where s_name= ...