一.改变数组形态

reshape()——通过改变数组的维度改变数组形态

import numpy as np
Array=np.arange(1,17,1)
Array

Array_1=np.arange(1,17,1).reshape(4,4) #将数据从(16.)变为(4,4)
Array_1

Array_2=np.arange(1,17,1).reshape(4,2,2)#将数据从(16.)变为(4,2,2)
Array_2

展平

flatten()flatten('F')——对数组进行横向或纵向展平

Array_1.flatten() #横向展平

Array_1.flatten('F') #纵向展平

切割

split(数组,分割轴,axis=0/1)——对数组进行横向或纵向切割

Array_a1,Array_b1=np.split(Array_1,2)  #axis=0 进行横向切割
print(Array_a1,'\n\n',Array_b1)

Array_a2,Array_b2=np.split(Array_1,2,axis=1)  #axis=0 进行纵向切割
print(Array_a2,'\n\n',Array_b2)

组合

concatenate((数组1,数组2,….,数组3),aixs=0/1)对多个数组进行横或纵组合

np.concatenate((Array_1,Array_b1,Array_a1)) #aisx=0 进行横向组合

np.concatenate((Array_1,Array_b2,Array_a2),axis=1) #aisx=0 进行横向组合

二.ufunc数组通用运算规律

四则运算+幂运算

Array_1+Array_1 #加法

Array_1-Array_1 #减法

Array_1*Array_1 #乘法

Array_1/Array_1 #除法

Array_1**2 #幂运算

比较运算

Array_3=Array_1*2
print(Array_1>Array_3,'\n\n',Array_1>=Array_3) #> ,>=

print(Array_1<Array_3,'\n\n',Array_1<=Array_3) #< ,<=

Array_1==1

逻辑运算

NumPY中 all 表示逻辑and,any表示逻辑or

print([[1,2,3]]and[[1,0,2,3]])
np.all([[1,2,3]]==[[1,0,2,3]])

print([[1,2,3]]or[[1,0,2,3]])
np.any([[1,2,3]]==[[1,0,2,3]])

广播机制

在进行数组结构不相同的运算时

1.让所有输入数组向最长的数组看齐,shape(结构)不足的用1补齐

2.输出数组shape是输入数组shape各轴上的最大值

3.当数组之间某个轴相同,或一个=1。时可以运算,否则报错

4.当某个轴长度为1,沿这个轴使用轴上第一个数组

a=np.array([1,1,1])
b=np.array([[1],[2],[3]])
print(a,'\n\n',b)
a+b



三.随机数

random

NumPy中提供了random模块可以生成多种类型,概率的随机数

随机数生成

1.random(元素个数)——随机生成小于1的数

np.random.random(10)

2.rand(轴0,轴1,...轴n)——生成均匀分布的随机数

np.random.rand(2,2)

3.randn(轴0,轴1,...轴n)——生成服从正态分布的随机数

np.random.randn(2,2,2)

4.randint(起始值,终值,size=[轴0,轴1,...轴n])——生成复合范围内的随机数

np.random.randint(1,5,[2,2,2])

数组轴的随机数

1.shuffle(数组)——对轴0随机排序,并改变数组

c=np.array([[1,2,3],[4,5,6],[7,8,9]])
c

np.random.shuffle(c)
c

2.permutation(数组)——对轴0改变,但不改变数组

c=np.array([[1,2,3],[4,5,6],[7,8,9]])
c

np.random.permutation(c)

随机数种子

seed (int)——定义随机数的种子,得到初始固定的随机数

np.random.seed(10)
np.random.rand(3,3)

np.random.seed(10)
np.random.rand(3,3)

四.统计分析

排序

sort()——改变原数组,横向或纵向的直接排序

Array=np.array([[3,2,1],[6,8,9],[10,1,3]])
Array

Array.sort(axis=1) #aixs=1横向培训
Array

Array=np.array([[3,2,1],[6,8,9],[10,1,3]])
Array.sort(axis=0) #aixs=1纵向培训
Array

argsort()——先排序,再排序后输出下标,不改变数组

Array=np.array([[3,2,1],[6,8,9],[10,1,3]])
Array.argsort()

lexsort(数组1,数组2……数组n)——多个数组在同轴上综合下标排序,不改变数组

a=np.array([3,2,1])
b=np.array([5,6,4])
c=np.lexsort((a,b))
c

b[c] #输出b数组的排序

a[c] #输出a数组的排序

去重复

unique()——进行数组里的去重

a=np.array([1,1,2,3,4,4,5])
print(a,'\n\n',np.unique(a))

重复输出

repeat(次数,axis=0/1)——将数组进行横向或纵向克隆

注意:axis=0会将数组展平

print(Array)
print('\n',Array.repeat(2),'\n')
print(Array.repeat(2,axis=1))

常用统计函数

——都可以用axis=0或1来调整操作轴向

2.掌握numpy数组的更多相关文章

  1. numpy数组的操作

    numpy - 介绍.基本数据类型.多维数组ndarray及其内建函数 http://blog.csdn.net/pipisorry/article/details/22107553 http://w ...

  2. numpy数组、向量、矩阵运算

    可以来我的Github看原文,欢迎交流. https://github.com/AsuraDong/Blog/blob/master/Articles/%E6%9C%BA%E5%99%A8%E5%AD ...

  3. Numpy数组对象的操作-索引机制、切片和迭代方法

    前几篇博文我写了数组创建和数据运算,现在我们就来看一下数组对象的操作方法.使用索引和切片的方法选择元素,还有如何数组的迭代方法. 一.索引机制 1.一维数组 In [1]: a = np.arange ...

  4. 操作 numpy 数组的常用函数

    操作 numpy 数组的常用函数 where 使用 where 函数能将索引掩码转换成索引位置: indices = where(mask) indices => (array([11, 12, ...

  5. NumPy 超详细教程(1):NumPy 数组

    系列文章地址 NumPy 最详细教程(1):NumPy 数组 NumPy 超详细教程(2):数据类型 NumPy 超详细教程(3):ndarray 的内部机理及高级迭代 文章目录 Numpy 数组:n ...

  6. NumPy数组对象

    1.创建NumPy数组 import numpy as np # 创建3*2*4的三维数组 a = np.arange(24).reshape(3, 2, 4) # 打印三维数组的所有元素 print ...

  7. Numpy 数组属性

    Numpy 数组的维数称为秩(rank),一维数组的秩为 1 , 二维数组的秩为 2 , 以此类推:在Numpy中, 每一个线性的数组称为是一个轴(axis),也就是维度(dimensios).比如说 ...

  8. numpy 数组对象

    numpy 数组对象NumPy中的ndarray是一个多维数组对象,该对象由两部分组成:实际的数据,描述这些数据的元数据# eg_v1 import numpy as np a = np.arange ...

  9. python numpy 数组拼接

    我就写一下我遇到的,更多具体的请看Python之Numpy数组拼接,组合,连接 >>> aarray([0, 1, 2],       [3, 4, 5],       [6, 7, ...

  10. numpy数组(5)-二维数组的轴

    numpy的mean(),std()等方法是作用于整个numpy数组的,如果是二维数组的话,也是整个数组,包括所有行和列,但我们经常需要它仅作用于行或者列,而不是整个二维数组,这个时候,可以定义轴ax ...

随机推荐

  1. codeforces 5C

    C. Longest Regular Bracket Sequence time limit per test 2 seconds memory limit per test 256 megabyte ...

  2. Leetcode(28)-实现strStr()

    实现 strStr() 函数. 给定一个 haystack 字符串和一个 needle 字符串,在 haystack 字符串中找出 needle 字符串出现的第一个位置 (从0开始).如果不存在,则返 ...

  3. Bootstrap导航组件

    Bootstrap 中的导航组件都依赖同一个 .nav 类,状态类也是共用的.改变修饰类可以改变样式. 标签页 注意 .nav-tabs 类依赖 .nav 基类 <ul class=" ...

  4. ARMv7-A 架构下的MMU

    ARM架构中MMU的作用主要就是将CPU发出的虚拟地址转换成为物理地址,从实现内核和用户程序和用户程序之间的虚拟地址空间隔离.MMU的主要组成为两部分,其一是内部的TLBs缓存:还有就是转换表装换单元 ...

  5. μC/OS-III---I笔记3---时间管理

    时间管理相关函数,其实深入根本的理解就是一些对时间任务相关变量,数据结果进行修改的函数这样方便对应任务查找延时等时间相关的任务有没有到期.前面的时间相关的函数是这些操作的基 1.延时函数 OsTIme ...

  6. Docker下载Mysql 2059

    接着我上一篇的,在我们安装好docker后我们尝试在docker里面安装mysql并连接使用 正式开始 1.启动docker 2.打开Windows PowerShell(执行下载命令) `docke ...

  7. OpenCV+Ubuntu+缺少Python.h

    在cmake时粗心了, 要确保有 -D PYTHON_INCLUDE_DIR=/usr/include/python3.5 且该目录下存在Python.h文件. 如果在错误提示中是python2, 那 ...

  8. Laravel Homestead 安装 使用教程详解!

    1 Laravel Homestead 1 安装: 1 下载: http://www.vagrantup.com/downloads.html 1 配置: 1 1 测试: 1 1 ********** ...

  9. git commit guidelines

    git-commit-guidelines AngularJS Development Setup Running Tests Coding Rules Commit Message Guidelin ...

  10. Navigator.registerProtocolHandler All In One

    Navigator.registerProtocolHandler All In One Web API custom protocol URL Schemes URL Protocols https ...