不常用的函数总是遗忘,很是困扰啊。于是痛下时间,做一个系统的总结,纯原创,都是些实际项目中常用的函数和方法,当然还有一些这边也是没有记录的,因为我在实际数据处理过程中也没有遇到过(如字符串处理等等)。

创建基本ndarray类实例:

import numpy as np

np.array(object, dtype=None, copy=True, order='K', subok=False, ndmin=0)

 

序号 参数及描述
1. object 任何暴露数组接口方法的对象都会返回一个数组或任何(嵌套)序列。
2. dtype 数组的所需数据类型,可选。
3. copy 可选,默认为true,对象是否被复制。
4. order C(按行)、F(按列)或A(任意,默认)。
5. subok 默认情况下,返回的数组被强制为基类数组。 如果为true,则返回子类。
6. ndimin 指定返回数组的最小维数。

 

数据类型:

分为三大类:整型,浮点型,python对象。

import numpy as np

np.array("str",dtype=np.unicode) # 举个栗子,字典,集合等等均可
np.array([1,2,3],dtype=np.int32)
np.array([1,2,3],dtype=np.float32)

  

数组属性:

ndarray.shape

ndarray.reshape(shape) # 等同于np.reshape(a,newshape),且要注意shape中的-1表示根据剩下的维度计算得出。

ndarray.ndim # 返回数组维度

创建例程:

np.zeros(shape,dtype=float)

np.ones(shape,dtype=None)

np.arange(start,stop,step,dtype) # 注意点stop值取不到

numpy.linspace(start, stop, num, endpoint=True, retstep, dtype)  # endpoint为True 则包含stop值

numpy.logspace(start, stop, num, endpoint, base, dtype)

切片和索引:

解释起来比较复杂,最常用的操作之一,划重点,涵盖的信息量很大。

a = np.zeros((2,3))

# 简单索引
a[:,:]
a[1:,:2] # 整数索引
a[[0,1],:]
a[:,[0,1,2]] # 布尔索引 # 自己的理解,矩阵相乘,非点积
a = np.array([[ 0, 1, 2],[ 3, 4, 5],[ 6, 7, 8],[ 9, 10, 11]])
print(a>5)
print(a[a>5])
>>>[[False False False]
[False False False]
[ True True True]
[ True True True]]
>>>[ 6 7 8 9 10 11]

  

  

数组操作:

np.reshape(a,newshape)

np.linalg.inv() # 矩阵的逆

ndarray.T

np.expand_dims(a, axis) # 增加维度,其实我觉得reshape完全够用

### 数组连接

np.concatenate((a1, a2, ...), axis=0, out=None)  # 沿着现存的轴连接数据序列

np.stack(arrays, axis=0, out=None)  # 沿着新轴连接数组序列

np.hstack(tup)  # 水平堆叠序列中的数组

np.vstack(tup) # 竖直堆叠序列中的数组

### 添加/删除数组

np.append(arr, values, axis=None)

np.insert(arr, obj, values, axis=None)

np.delete(arr, obj, axis=None) # 删除指定索引元素

算术运算:

np.power() # np.power(a,2)

np.sqrt()

np.abs()

np.add()

np.subtract()

np.divide()

np.multiply()

# 矩阵运算

np.dot() # 线代的点积。如果输入都为1D,计算内积。如果输入多维,那么必须满足矩阵乘积维数要求

np.matmul() # 好像和np.dot()一样

统计运算:

np.mean()

np.sum()

np.std() # 标准差

np.var() # 方差

np.round(a, decimals=0, out=None) # 保留几位小数

np.max()   np.min() np.sort()

np.argmax() np.argmin() np.argsort()

numpy 从入门到遗忘的更多相关文章

  1. 数据分析与展示——NumPy库入门

    这是我学习北京理工大学嵩天老师的<Python数据分析与展示>课程的笔记.嵩老师的课程重点突出.层次分明,在这里特别感谢嵩老师的精彩讲解. NumPy库入门 数据的维度 维度是一组数据的组 ...

  2. numpy快速入门

    numpy快速入门 numpy是python的科学计算的核心库,很多更高层次的库都基于numpy.博主不太喜欢重量级的MATLAB,于是用numpy进行科学计算成为了不二选择. 本文主要参考Scipy ...

  3. Python数据分析与展示(1)-数据分析之表示(1)-NumPy库入门

    Numpy库入门 从一个数据到一组数据 维度:一组数据的组织形式 一维数据:由对等关系的有序或无序数据构成,采用线性方式组织. 可用类型:对应列表.数组和集合 不同点: 列表:数据类型可以不同 数组: ...

  4. NumPy简单入门教程

    # NumPy简单入门教程 NumPy是Python中的一个运算速度非常快的一个数学库,它非常重视数组.它允许你在Python中进行向量和矩阵计算,并且由于许多底层函数实际上是用C编写的,因此你可以体 ...

  5. NumPy快速入门笔记

    我正以Python作为突破口,入门机器学习相关知识.出于机器学习实践过程中的需要,我快速了解了一下NumPy这个科学计算库的使用方法.下面记录相关学习笔记. 简介 NumPy是一个科学计算库.结合Py ...

  6. numpy简单入门

    声明:本文大量参考https://www.dataquest.io/mission/6/getting-started-with-numpy(建议阅读原文)   读取文件 有一个名为world_alc ...

  7. Numpy快速入门——shape属性,你秒懂了吗

    前言 对于学习NumPy(Numeric Python),首先得明确一点是:Numpy 是用来处理矩阵数组的. shape 属性 对于shape函数,官方文档是这么说明: the dimensions ...

  8. 数据分析之Numpy库入门

    1.列表与数组 在python的基础语言部分,我们并没有介绍数组类型,但是像C.Java等语言都是有数组类型的,那python中的列表和数组有何区别呢? 一维数据:都表示一组数据的有序结构 区别: 列 ...

  9. 机器学习 Numpy库入门

    2017-06-28 13:56:25 Numpy 提供了一个强大的N维数组对象ndarray,提供了线性代数,傅里叶变换和随机数生成等的基本功能,可以说Numpy是Scipy,Pandas等科学计算 ...

随机推荐

  1. 51Nod 1815 调查任务

    发现绍一的人很喜欢做51nod,不得不说这还是一个很全能的良心OJ 但是做的这道题就一点都不良心了,简直是毒瘤,调了一早上 首先我们考虑让一条路径的\(a_x\ mod\ a_y\)的值最大,我们简单 ...

  2. libgdx学习记录27——线段与线段相交检测

    给定p1, p2, p3, p4四个点,p1,p2为一条线段,p3,p4为一条线段,检测其是否有交点. 可分为三种情况: 1. L2与x轴平行 2. L2与y轴平行 3. L2与坐标轴不平行. (L1 ...

  3. PowerBI开发 第十五篇:DAX 表达式(时间+过滤+关系)

    DAX表达式中包含时间关系(Time Intelligence)相关的函数,用于对日期维度进行累加.同比和环比等分析.PowerBI能够创建关系,通过过滤器来对影响计算的上下文. 一,时间关系 DAX ...

  4. WinForm 简易仿360界面控件

    因为经常要做一些1.2千行的小工具,WinForm自带的TabCtrl又不美观,所以想做成360的样子,在网上找来找去,都只有散乱的代码,没有可以通用的结构,于是自己写了一个简易的通用控件. 控件主要 ...

  5. ceph学习

    网络: ceph必须要有公共网络和集群网络: public network:负责客户端交互以及osd与mon之间的通讯 cluster network:负责osd之间的复制,均衡,回填,数据恢复等操作 ...

  6. Linux系统下CPU使用(load average)梳理

    在平时的运维工作中,当一台服务器的性能出现问题时,通常会去看当前的CPU使用情况,尤其是看下CPU的负载情况(load average).对一般的系统来说,根据cpu数量去判断.比如有2颗cup的机器 ...

  7. C语言与汇编衔接1

    研究实验二 问题研究过程: 发问:C语言中的变量究竟是什么,通过下面的程序进行C语言中的变量的学习 图1  URL.EXE函数 为了研究main函数的首地址,我首先自作聪明的用了一条_DX=main, ...

  8. 个人博客作业-Week7

    团队任务中个人感想 我们团队选的题目是爬虫, 采用用AVA平台开发了, 我原来JAVA语言不熟悉了, PM考虑这部分之后分配任务这部分感觉很多谢 团队当中的PM很清楚每个组员的力量, 所以PM跟每个组 ...

  9. 个人博客作业Week2(代码规范,代码复审)

    Q:是否需要有代码规范 首先我们来搞清楚什么是“代码规范”,它和“代码风格”又有什么关系.依据个人的审美角度,我可能更喜欢在函数与函数之间空出一行,可能在命名习惯和代码注释上更加的internatio ...

  10. A11-java学习-二维数组-面向对象概念-类的编写-测试类的编写-创建对象-使用对象-递归

    二维数组的内存结构和使用 引用类型的内存结构 栈区.堆区.方法区.数据栈等内存分析和介绍 面向对象.面向过程区别和发展 类型的定义 引用类型.值类型 预定义类型和自定义类型 类型与对象(实例) 对象的 ...