设为首页 加入收藏

TOP

我的Python分析成长之路8(一)
2019-01-16 14:08:43 】 浏览:256
Tags:Python 分析 成长

Numpy数值计算基础

  Numpy:是Numerical Python的简称,它是目前Python数值计算中最为基础的工具包,Numpy是用于数值科学计算的基础模块,不但能够完成科学计算的任而且能够用作高效的多维数据容器,可用于存储和处理大型矩阵。Numpy的数据容器能够保存任意类型的数据,这使得Numpy可以无缝并快速地整合各种数据。Numpy本身并没有提供很多高效的数据分析功能。理解Numpy数组即数组计算有利于更加高效地使用其他如pandas等数据分析工具。

  Numpy提供了两种基本的对象:ndarray(多维数组对象)和ufunc(通用函数)

1.数组属性:

      ndim:返回int 。数组的维度

      shape:返回tuple。表示数组的尺寸,对于n行m列的矩阵,形状为(m,n)

      size:返回int。表示数组的元素整数,等于数组形状的乘积

      dtype:返回data-typle。描述数组中元素的类型

      itemsize:返回int。表示数组中每个元素的大小(以字节为单位)

        

1 import numpy as np
2 arr1 = np.arange(9).reshape(3,3)
3 print("创建数组:",arr1)
4 print("数组的维度:",arr1.ndim)
5 print("数组的尺寸(形状):",arr1.shape)
6 print("数组的数据类型:",arr1.dtype)
7 print("数据元素个数:",arr1.size)
8 print("数据每个元素大小:",arr1.itemsize)

2.数组创建

    一、生成多维数组最简单的方式就是使用array函数,array函数接受任意的序列型对象(当然也包括其他的数组)。

    基本语法法:numpy.array(object,dtype=None,copy=True,order='K',subok=False,ndmin=0)

          1.object 接受array。表示想要创建的数组.无默认

          2.dtype 接受data-type.表示数组所需的数据类型。默认为None

          3.ndmin 接受int。指定数组的最小维度。默认为None

import numpy as np
data1 = [1,2,3,4,5]
data2 = [[1,2,3,4],[5,6,7,8]]
print("生成一维数组:",np.array(data1))   #生成一维数组
print("生成二维数组:",np.array(data2))   #生成二维数组

    二、使用其他函数创建数组

      

1 import numpy as np
2 print("使用arange函数生成数组:",np.arange(0,10,1))  #左闭右开
3 print("使用linspace函数生成数组:",np.linspace(0,9,10))  #闭区间
4 print("使用logspace函数生成数组:",np.logspace(0,2,10)) #[1,100]生成10个数
5 print("使用zeros函数生成数组:",np.zeros((2,3)))  #生成二行三列全为0的数组
6 print("使用ones函数生成数组:",np.ones((2,3))) #生成二行三列全为一的数组
7 print("使用eye函数生成数组:",np.ones(3))  #生成对角线上为一的数组
8 print("使用diag函数生成数组:",np.diag([1,2,3,4]))

3.数组的数据类型

    在Numpy中,所欲数组的数据类型是同质的,即数组中的所有元素必须是一致的。这样做的好处,更容易确定数组所需要的存储空间。

    bool :用一位存储的布尔类型(True or False)

    inti:由所在平台决定其精度的整数

    int8:整数 范围为:-128~127

    int16:整数 范围为:-32768~32767

    int32:整数 范围为:-2^31~2^32-1

    int64:整数 范围为:-2^63~2^63-1

    unit8:无符号整数 范围为:0~255

    unit16:无符号整数 范围为:0~65535

    unit32:无符号整数 范围为0~2^32-1

    unit64 无符号整数 范围为0~2^64-1

    float16:半精度浮点数

    float32:单精度浮点数

    float64: 双精度浮点数

    complex64 复数 分别用32为浮点数代表实部和虚部

    complex128/comple 复数分别用64位浮点数表示实部和虚部

    np.dtype() 查看数据类型

print(np.float(32))   #整形转化为浮点型
print(np.int(42.0))  #浮点型转化为整形
print(np.bool(42))  #整形转化为bool型
print(np.float(True))  #bool型转化为浮点型

4.生成随机数

    Numpy提供了强大的生成随机数的功能,但使用的都是伪随机数.random 是最常见的生成随机数的方法.

1 print("生成随机数:",np.random.random())
2 print("生成均匀分布的随机数",np.random.rand(10,5))
3 print("生成正态分布的随机数",np.random.randn(10,5))
4 print("生成给定上下限的随机数:",np.random.randint(0,10,size=[5,2]))
5 print("生成二项分布随机数:",np.random.binomial(10,0,(2,3)))
6 print("生成beta分布随机数:",np.random.beta(0.2,0.3,(2,3)))
7 print("生成卡方分布随机数:",np.random.chisquare(10,[5,2]))
8 print("生成gamma分布随机数:",np.random.gamma(10,1,(5,2)))
9 print("生成任意期间均匀分布随机数:",np.random.uniform(0,10,(5,2)))

5.通过索引访问数组

    1.一维数组的索引

    一维数组的索引比较简单,与Python中list的索引方法类似:如果你传递一个数值给数组的切片,数值会被传递给整个切片。区别于Python的内建列表,数组的切片是原数组的视图。这意味着数据并不是被复制,任何对于视图的修改都会反映到原数组上。

    

1 arr1 = np.arange(10)
2 print(arr1[1])  #获得索引为1的值
3 print(arr1[1:3])  #获得索引为1,2的值
4 arr1[2:4] = 12
5 print(arr1)   #[ 0  1 12 12  4  5  6  7  8
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Python面向对象:杂七杂八的知识点 下一篇cmd中执行Python命令时>>&g..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目