NumPy入门

作者: 圆圆KK | 来源:发表于2019-03-03 13:35 被阅读1次

NumPy、Pandas、Scipy是python的三个库,也是数据分析的常用库。NumPy便于存储和处理多维数组(N-dimensional array)ndarray,这里简单说明NumPy的使用,更多内容查看NumPy官方文档

安装包
pip install numpy

载入包

import numpy as np
1.生成数组

NumPy有多种生成数组的方式
(1)基本用法

常用方法 说明 输入
array 可输入列表、元组生成ndarry np.array([[1,2.0], [0,0],(1+1j,3.)])
zeros / ones 生成全为0或1的矩阵 np.zeros((2,3))
eye 生成对角线为1其余为0矩阵 np.eye(6,7,1, dtype=int)k=1为斜线偏移值
arange 可输入起终点、步距的矩阵 np.arange(2,10,2)
linsapce / logspace 生成整数或对数的等间距数列 np.linspace(0,20, 5,endpoint= False, retstep=True )

linspace,这里num=5,不设定则默认50;endpoint默认True,为闭区间,False为开区间;retstep默认False, True则返回间距;同样的还有logspace。

>>> np.array([[1,2.0], [0,0],(1+1j,3.)])
array([[1.+0.j, 2.+0.j],
       [0.+0.j, 0.+0.j],
       [1.+1.j, 3.+0.j]])
>>> np.zeros((2,3))
array([[0., 0., 0.],
       [0., 0., 0.]])
>>> np.eye(6,7,1,dtype=int)
array([[0, 1, 0, 0, 0, 0, 0],
       [0, 0, 1, 0, 0, 0, 0],
       [0, 0, 0, 1, 0, 0, 0],
       [0, 0, 0, 0, 1, 0, 0],
       [0, 0, 0, 0, 0, 1, 0],
       [0, 0, 0, 0, 0, 0, 1]])
>>> np.arange(2,10,2)
array([2, 4, 6, 8])
>>> np.linspace(0,20, 5,endpoint= False, retstep=True )
(array([ 0.,  4.,  8., 12., 16.]), 4.0)

(2)random生成随机数

常用方法 说明 输入
random.rand 生成[0,1)的随机数 np.random.rand(2,3)
random.randn 生成一组正态分布的数据, 标准正态分布的可用random.standard_normal 2*np.random.randn(2,3)+4
random.randint 返回离散均匀[a,b)范围的值,如果只输入一个值默认为[0,a)范围 np.random.randint(2,10,size=(2,4))
random.shuffle / random.permutation 改变序列顺序 a=np.arange(12).reshape(3,4) np.random.shuffle(a)
  • 同样的还有beta, binomial, chisquare, geometric等,分别生成beta分布, binomial二项分布, chisquare卡方分布, geometric几何分布的随机数。这些都有共通性的,设定分布参数、形状。eg.二项分布np.random.binomial(n, p, size=a)(n次试验,p成功概率,生成size形状数组)
>>> np.random.rand(2,3)
array([[0.22128075, 0.31974379, 0.5859686 ],
       [0.3307407 , 0.18200795, 0.59027476]])
>>> 2*np.random.randn(2,3)+4
array([[4.65342832, 3.16739484, 5.30323633],
       [1.50943009, 4.36887803, 3.90668209]])
>>> np.random.randint(2,10,size=(2,4))
array([[3, 2, 4, 5],
       [2, 4, 3, 5]])
>>> a = np.arange(12).reshape(3,4)
>>> np.random.shuffle(a)
>>> a
array([[ 0,  1,  2,  3],
       [ 8,  9, 10, 11],
       [ 4,  5,  6,  7]])
2.数组处理

(1)基本用法

常用方法 说明 输入
reshape 改变形状 np.arange(2,10).reshape(2,4)
T 转置 np.arange(2,10).reshape(2,4).T
concatenate / append 连接/增加矩阵 np.concatenate((x,y), axis=1) / np.append(x,y,axis=1)axis默认为0,对应行
split 分离 np.split(x, [1, 2, 4],axis=1)axis默认为0,对应行
tile 重复 np.tile(x,(2,3)) (2,3)为沿轴复制的次数,分别对应0, 1轴
delete 删除 np.delete(a,(1,3),axis=0) (1,3)删除的位置,axis默认为None,None则平展矩阵
insert 插入 np.insert(a,(1,2),[[1],[3],[5]],axis=1)(1,2)插入位置,[[1],[3],[5]]插入数值,axis默认None
>>> np.arange(2,10).reshape(2,4)
array([[2, 3, 4, 5],
       [6, 7, 8, 9]])
>>> np.arange(2,10).reshape(2,4).T
array([[2, 6],
       [3, 7],
       [4, 8],
       [5, 9]])
>>> x = np.array([[3,4,5],[1,2,3]])
>>> y = np.array([[5],[4]])
>>> np.concatenate((x,y), axis=1)
array([[3, 4, 5, 5],
       [1, 2, 3, 4]])
>>> np.append(x,y,axis=1) #两者输出一样
array([[3, 4, 5, 5],
       [1, 2, 3, 4]])
>>> x = np.arange(12).reshape(4,3)
>>> np.split(x, [1, 2, 4])
[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[ 6,  7,  8],
        [ 9, 10, 11]]), array([], shape=(0, 3), dtype=int32)]
>>> x = np.array([[2,3,4],[1,0,7]])
>>> np.tile(x,(2,3))
array([[2, 3, 4, 2, 3, 4, 2, 3, 4],
       [1, 0, 7, 1, 0, 7, 1, 0, 7],
       [2, 3, 4, 2, 3, 4, 2, 3, 4],
       [1, 0, 7, 1, 0, 7, 1, 0, 7]])
>>> a = np.arange(12).reshape(3,4)
>>> np.delete(a,(1,3),1)
array([[ 0,  2],
       [ 4,  6],
       [ 8, 10]])
>>> np.insert(a,(1,2),[[1],[3],[5]],1)
array([[ 0,  1,  1,  1,  2,  3],
       [ 4,  3,  5,  3,  6,  7],
       [ 8,  5,  9,  5, 10, 11]])
3.按条件截取数组
>>> a = np.arange(20).reshape(4,5)
>>> a
array([[ 0,  1,  2,  3,  4],
       [ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14],
       [15, 16, 17, 18, 19]])
  • 选取一行 a[n] / 多行a[n:m] / 间隔选择多行 a[n:m:a] a为步距
>>> a[1]
array([5, 6, 7, 8, 9])
>>> a[1:3]
array([[ 5,  6,  7,  8,  9],
       [10, 11, 12, 13, 14]])
>>> a[::2]
array([[ 0,  1,  2,  3,  4],
       [10, 11, 12, 13, 14]])
  • 选取一列a[:,n] / 多列a[:, n:m] /间隔选择多列 a[:,n:m:a] a为步距
>>> a[:,1]
array([ 1,  6, 11, 16])
>>> a[:,1:5:2]
array([[ 1,  3],
       [ 6,  8],
       [11, 13],
       [16, 18]])
  • 选择n行m列数 a[n,m]
>>> a[1,2]
7

相关文章

  • Numpy简易入门笔记

    来自 AI基础:Numpy简易入门手动运行了一遍实例代码,笔记待查于此处。 Numpy 简易入门 Numpy是 N...

  • numpy 学习(待更新)

    numpy 学习 标签(空格分隔): 机器学习 Numpy 入门 一、安装 pip install numpyor...

  • Numpy

    1.numpy.tile(A,B)函数,实例验证 快速入门 Numpy[https://mp.weixin.qq....

  • NumPy之 索引技巧

    系列文章 一次性搞定NumPy入门基础知识NumPy之操控ndarray的形状NumPy之浅拷贝和深拷贝NumPy...

  • Numpy语法入门(一)

    1 Numpy简易入门 1.1 认识Numpy数组对象 1.1.1 np.arange In [1]: Out[1...

  • numpy-n2

    [TOC]说明:本文是numpy入门的第二篇笔记。 numpy的智能切片 numpy提供了比原始python强大的...

  • Python编程&数据科学入门 Lesson4

    第四课 - NumPy 入门 本课内容: 0. 导入 NumPy 包 1. 创建 NumPy 数组 2. 索引和切...

  • Numpy 学习图谱

    在学习 Numpy 的时候,整理了一份 Numpy 学习图谱,希望同样可以帮助到想要入门 Numpy 的朋友。 N...

  • 【Chapter 4】 NumPy基础:数组和矢量计算

    【Chapter 4】 NumPy基础:数组和矢量计算 使用 Python 进行科学计算:NumPy入门 NumP...

  • 对 NumPy.dot() 的理解

    【对 Numpy.dot() 的理解】 我看了一下 「使用 Python 进行科学计算:NumPy入门 」 这个教...

网友评论

    本文标题:NumPy入门

    本文链接:https://www.haomeiwen.com/subject/omsduqtx.html