参考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. OpenMax的接口与实现

    OpenMax IL层的接口定义由若干个头文件组成,这也是实现它需要实现的内容,它们的基本描述如下所示. OMX_Types.h:OpenMax Il的数据类型定义 OMX_Core.h:OpenMa ...

  2. LeetCode22.括号生成 JavaScript

    给出 n 代表生成括号的对数,请你写出一个函数,使其能够生成所有可能的并且有效的括号组合. 例如,给出 n = 3,生成结果为: [ "((()))", "(()())& ...

  3. python3爬虫编码问题

    使用爬虫爬取网页经常遇到各种编码问题,因此产生乱码今天折腾了一天,全部总结一遍环境:win10,pycharm,python3.41.首先先来网页编码是utf-8的:以百度首页为例:使用request ...

  4. python函数调用时传参方式

    位置参数 位置参数需与形参一一对应 def test(a,b) #a,b就是位置参数 print(a) print(b) test(1,2)   关键字参数 与形参顺序无关 def test(x,y) ...

  5. Oracle条件判断列数量非where

    sum(case when typename='测试' then 1 else 0 end)

  6. Ubuntu下Zabbix结合percona监控mysql数据

    按道理来说zabbix就自带的MySQL插件来监控mysql数据库,但是你会发现,自带的mysql监控项是很少的,根本满足不了公司的需求.由于它本身自带的模板太过简单了,所以需要做更详细的监控,而pe ...

  7. 简单的HTTP协议

    HTTP 协议和 TCP/IP 协议族内的其他众多的协议相同,用于客户端和服务器之间的通信. 请求访问文本或图像等资源的一端称为客户端,提供资源响应的一端称为服务器端. 在两台计算机之间使用 HTTP ...

  8. es6 Proxy对象详解

    Proxy用于修改某些操作的默认行为,也可以理解为在目标对象之前架设一层拦截,外部所有的访问都必须先通过这层拦截,因此提供了一种机制,可以对外部的访问进行过滤和修改.这个词的原理为代理,在这里可以表示 ...

  9. gem install tiny_tds失败

    解决: brew install freetds gem install tiny_tds -v '2.1.0'

  10. Python学习:11.Python装饰器讲解(二)

    回顾 上一节我们进行了Python简单装饰器的讲解,但是python的装饰器还有一部分高级的使用方式,这一节就针对python装饰器高级部分进行讲解. 为一个函数添加多个装饰器 今天,老板又交给你一个 ...