参考link  https://docs.scipy.org/doc/numpy-dev/user/quickstart.html

基础

Numpy主要用于处理多维数组,数组中元素通常是数字,索引值为自然数

在Numpy中,维度被称为axesaxes的总数为rank (秩)

(关于矩阵秩的概念,可以参考https://www.zhihu.com/question/21605094 与

https://www.applysquare.com/topic-cn/78QfWkiPt/

Numpy的数组类称为 ndarray,别名array

(numpy.array与 array.array不同,后者只处理一维数组)

ndarray属性

1. ndim

返回数组的秩

2.shape

返回数组各个维度大小

3.size

数组所有元素总个数,与shape结果相等

4.dtype

数组元素类型

5.itemsize

字节表示的元素类型大小,与ndarray.dtype.itemsize相等

int32 -> 4 (32/8)  int64 -> 8 (64/8)

6.data

包含数组实际元素的缓存区,通常不使用

举例

 import numpy as np
a=np.arange(15).reshape(3,5)
print(a) out:
array([[ 0, 1, 2, 3, 4],
[ 5, 6, 7, 8, 9],
[10, 11, 12, 13, 14]]) print(type(a))
print(a.shape)
print(a.ndim)
print(a.dtype.name)
print(a.item.size) out:
numpy.ndarray
(3,5)
2
'int32'
4

创建数组

 #将列表转换为array
>>> import numpy as np
>>> a = np.array([2,3,4])
>>> a
array([2, 3, 4])
>>> a.dtype
dtype('int32')
>>> b = np.array([1.2, 3.5, 5.1])
>>> b.dtype
dtype('float64') #创建二维数组array
>>> b = np.array([(1.5,2,3), (4,5,6)])
>>> b
array([[ 1.5, 2. , 3. ],
[ 4. , 5. , 6. ]]) #创建一维数组
>>> np.arange( 10, 30, 5 )
array([10, 15, 20, 25])
>>> np.arange( 0, 2, 0.3 )
array([ 0. , 0.3, 0.6, 0.9, 1.2, 1.5, 1.8]) #使用linespace创建数组
>>> from numpy import pi
>>> np.linspace( 0, 2, 9 )
array([ 0. , 0.25, 0.5 , 0.75, 1. , 1.25, 1.5 , 1.75, 2. ])
>>> x = np.linspace( 0, 2*pi, 100 )
>>> f = np.sin(x)
 >>> b = np.arange(12).reshape(3,4)
>>> b
array([[ 0, 1, 2, 3],
[ 4, 5, 6, 7],
[ 8, 9, 10, 11]])
>>>
>>> b.sum(axis=0) # 按列求和
array([12, 15, 18, 21])
>>> b.sum(axis=1) # 按行求和
array([ 6, 22, 38])
>>> b.min(axis=1) # 每行最小值
array([0, 4, 8])
>>> b.cumsum(axis=1) # 按列累积求和
array([[ 0, 1, 3, 6],
[ 4, 9, 15, 22],
[ 8, 17, 27, 38]])
 # 常用函数
>>> B = np.arange(3)
>>> B
array([0, 1, 2])
>>> np.exp(B)
array([ 1. , 2.71828183, 7.3890561 ])
>>> np.sqrt(B)
array([ 0. , 1. , 1.41421356])
>>> C = np.array([2., -1., 4.])
>>> np.add(B, C)
array([ 2., 0., 6.])
 # 索引、切片、迭代
# 一维数组
>>a=np.arange(10)**3
>>print(a)
array([ 0, 1, 8, 27, 64, 125, 216, 343, 512, 729], dtype=int32)
>>a[2]
8
>>a[2:5]
array([ 8, 27, 64], dtype=int32)
>>a[:6:2]=-100
>>a
array([-10, 1, -10, 27, -10, 125, 216, 343, 512, 729], dtype=int32)
>>a[::-1]
array([729, 512, 343, 216, 125, -10, 27, -10, 1, -10], dtype=int32) #多维数组
>>> def f(x,y):
... return 10*x+y
...
>>> b = np.fromfunction(f,(5,4),dtype=int)
>>> b
array([[ 0, 1, 2, 3],
[10, 11, 12, 13],
[20, 21, 22, 23],
[30, 31, 32, 33],
[40, 41, 42, 43]])
>>> b[2,3]
23
>>> b[0:5, 1] #第二列
array([ 1, 11, 21, 31, 41])
>>> b[ : ,1] #第二列
array([ 1, 11, 21, 31, 41])
>>> b[1:3, : ] #第二行、第三行
array([[10, 11, 12, 13],
[20, 21, 22, 23]])
>>b[-1] #相当于 b[-1,:],最后一行
array([40, 41, 42, 43])

Python数据分析基础——Numpy tutorial的更多相关文章

  1. python数据分析基础——numpy和matplotlib

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

  2. python数据分析基础——pandas Tutorial

    参考pandas官方文档: http://pandas.pydata.org/pandas-docs/stable/10min.html#min 1.pandas中的数据类型 Series 带有索引标 ...

  3. Numpy使用大全(python矩阵相关运算大全)-Python数据分析基础2

    //2019.07.10python数据分析基础——numpy(数据结构基础) import numpy as np: 1.python数据分析主要的功能实现模块包含以下六个方面:(1)numpy—— ...

  4. Python数据分析基础教程

    Python数据分析基础教程(第2版)(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1_FsReTBCaL_PzKhM0o6l0g 提取码:nkhw 复制这段内容后 ...

  5. Python数据分析基础PDF

    Python数据分析基础(高清版)PDF 百度网盘 链接:https://pan.baidu.com/s/1ImzS7Sy8TLlTshxcB8RhdA 提取码:6xeu 复制这段内容后打开百度网盘手 ...

  6. python数据分析基础

    ---恢复内容开始--- Python数据分析基础(1) //2019.07.09python数据分析基础总结1.python数据分析主要使用IDE是Pycharm和Anaconda,最为常用和方便的 ...

  7. Python数据分析(二): Numpy技巧 (1/4)

    In [1]: import numpy numpy.__version__ Out[1]: '1.13.1' In [2]: import numpy as np  

  8. Python数据分析(二): Numpy技巧 (2/4)

    numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性.   昨天晚上发了第一 ...

  9. Python数据分析(二): Numpy技巧 (3/4)

    numpy.pandas.matplotlib(+seaborn)是python数据分析/机器学习的基本工具. numpy的内容特别丰富,我这里只能介绍一下比较常见的方法和属性.   昨天晚上发了第一 ...

随机推荐

  1. <a>标签跳转到Servelet页面并实现参数的传递

    <a>标签跳转到页面不能通过request.setAttribute()和getAttribute()方法获取参数. <a>标签只能通过request.getParameter ...

  2. JQuery手写一个简单的分页

    效果图: 大概思路:使用ul进行初始布局,每一次点击事件改变li里的值.完整的代码在gitup上:https://github.com/anxizhihai/Paging.gitcss部分: html ...

  3. NodeJs——入门

    关于NPM: npm 是 nodejs 的包管理和分发工具.它可以让 javascript 开发者能够更加轻松的共享代码和共用代码片段,并且通过 npm 管理你分享的代码也很方便快捷和简单. 一 No ...

  4. 课时48.表单标签-H5(了解)

    可以自动校验输入的内容是否符合邮箱的格式,我带大家随便看几个就行了,因为大部分浏览器对这几个特性有的支持,有的不支持,所以大家只要了解就好了   

  5. Python入门(案例)

    Python入门(案例) #一.上课案例: #输出hello wordprint('hello word') #python注释有两种#1.单行注释#这是单行注释#2.多行注释'''这是多行注释''' ...

  6. 随机返回经典语句接口API

    api接口:https://www.liutianyou.com/api/?type=js&charset=utf-8 可以单独将上面链接,在浏览器中查看效果 ​ 这是get请求,参数:typ ...

  7. 使用Screen管理远程会话

    ​ 在本地开发时,经常需要使用远程连接到Linux服务器,一开始我自己都是有几个远程就开几个SSH窗口,这种方法很原始很直接,但每次都受够了密码输入,即使用了SSH免密码登录,也会觉得每次输入SSH的 ...

  8. ecshop 后台添加新菜单 以及 权限控制

    首先 在languages\zh_cn\admin\common.php 中添加 一级菜单 二级菜单 其次 在admin\includes\inc_menu.php 中添加 然后 在admin\inc ...

  9. 记一次PHP实现接收邮件信息(我这里测试的腾讯企业邮件)

    PHP实现接收邮件信息(我这里测试的腾讯企业邮件) , 其他的类型的没有测,应该只要更换pop3地址 端口号就可以. 代码如下(代码参考网络分享): <?php //此处查看链接状态 heade ...

  10. python学习——面向对象的三大特性

    一.继承 继承是一种创建新类的方式,在python中,新建的类可以继承一个或多个父类,父类又可称为基类或超类,新建的类称为派生类或子类. 1.python中类的继承分为:单继承和多继承 class P ...