一、NumPy ndarray

(一)生成ndarray

表 数组生成函数
函数 描述(默认数据类型是float64)
array 将输入数据(序列型对象)转换为ndarray,若不显示的指定数据类型,将自动推断;默认复制所有的输入数据
asarray 将输入转换为ndarray。但如果输入已经是ndarray,则不再复制
arange python内建函数range的数组版,返回一个数组
ones 根据指定形状数据类型生成全1数组
ones_like 根据所给的数组生成一个形状一样的全1数组
zeros 根据给定形状和数据类型生成全0数组
zeros_like 根据所给的数组生成一个形状一样的全0数组
empty 根据给定形状生成一个没有初始化数值的空数组
empty_like 根据所给的数组生成一个形状一样但没有初始化数值的空数组
full 根据给定形状和数据类型生成指定数值的数组
full_like 根据所给的数组生成一个形状一样但内容是指定数值的数组
eye,identity 生成一个N×N特征矩阵(对角线位置都是1,其余位置是0)

(二)ndarray的数据类型

NumPy数据类型
类型 类型代码 描述
int8,unit8 i1,u1 有符号和无符号的8位整数
int16,uint16 i2,u2 有符号和无符号的16位整数
int32,uint32 i4,u4 有符号和无符号的32位整数
int64,uint64 i8,u8 有符号和无符号的64位整数
float16 f2 半精度浮点数
float32 f4或f 标准单精度浮点数;兼容C语言float
float64 f8或d 标准双精度浮点数;兼容C语言double和Python float
float128 f16或g 拓展精度浮点数
complex64,complex128,complex256 c8,c16,c32 分别基于32位、64位、128位浮点数的复数
bool ? 布尔值,存储True或False
object o Python object类型
string_

S

修正的ASCII字符串类型;例如生成一个长度为10的字符串类型,使用'S10'
unicode_ U 修正的Unicode类型,生成一个长度为10的Unicode类型,使用'U10'

astype方法---显示地转换数组的数据类型

注意:使用astype时总是生成一个新的数组,即使传入的dtype与之前一样。

(三)NumPy数组算术

1、向量化:批量操作而无须任何for循环

2、等尺寸数组---逐元素操作

①标量计算---会把计算参数传递给数组的每一个元素

②比较---产生一个布尔值数组

3、不同尺寸数组的操作---广播特性(了解)

(四)基础索引与切片

1、索引

①区别于python的内建列表,数组的切片是原数组的视图---数据并不是被复制了,任何对于视图的修改都会反映到原数组上。

例1:arr([0,1,2,3,4,5])

  arr[2:4]=12

  arr([0,1,12,12,12,5])

例2:arr_slice=arr[2:4]

  arr_slice[1]=12345

  arr([0,1,12,12345,12,5])

注意:[:]将会引用数组的所有值;显示的复制数组---arr[2:4].copy()

②二维数组,可以传递一个索引的逗号分隔列表去选择单个元素

arr2d[0][2]相当于arr2d[0,2]

③多维数组,省略后续索引值,返回的对象将是降低一个维度的数组

例:2×2×3的数组 arr3d(

            [[[1, 2, 3]
            [4, 5, 6]]

            [[7, 8, 9]
            [10, 11, 12]]]

           )

arr3d[0]是一个2×3的数组 arr3d[0](

                [[1, 2, 3]
                [4, 5, 6]]

               )

标量和数组都可以传递给arr3d[0]---arr3d[0]=42、arr3d[0]=arr([[1 2 3][4 5 6]])

④数组的切片索引

将索引和切片混合,得到降低纬度的切片

例:arr2d=arr([[1 2 3][4 5 6][7 8 9]])

arr2d[1,:2]---arr([4,5])

arr2d[:2,2]---arr([3,6])

注意:单独一个冒号表示选择整个轴上的数组 arr2d[:,:1]---arr([1],[4],[7])

(五)布尔索引

使用pandas更方便

(六)神奇索引

神奇索引---用于描述使用整数数组进行数据索引

NumPy基础的更多相关文章

  1. 利用Python进行数据分析(5) NumPy基础: ndarray索引和切片

    概念理解 索引即通过一个无符号整数值获取数组里的值. 切片即对数组里某个片段的描述. 一维数组 一维数组的索引 一维数组的索引和Python列表的功能类似: 一维数组的切片 一维数组的切片语法格式为a ...

  2. 《利用python进行数据分析》读书笔记--第四章 numpy基础:数组和矢量计算

    http://www.cnblogs.com/batteryhp/p/5000104.html 第四章 Numpy基础:数组和矢量计算 第一部分:numpy的ndarray:一种多维数组对象 实话说, ...

  3. 利用Python进行数据分析——Numpy基础:数组和矢量计算

    利用Python进行数据分析--Numpy基础:数组和矢量计算 ndarry,一个具有矢量运算和复杂广播能力快速节省空间的多维数组 对整组数据进行快速运算的标准数学函数,无需for-loop 用于读写 ...

  4. numpy 基础操作

    Numpy 基础操作¶ 以numpy的基本数据例子来学习numpy基本数据处理方法 主要内容有: 创建数组 数组维度转换 数据选区和切片 数组数据计算 随机数 数据合并 数据统计计算 In [1]: ...

  5. Numpy 基础

    Numpy 基础 参考https://www.jianshu.com/p/83c8ef18a1e8 import numpy as np 简单创建数组 # 创建简单列表 a = [1, 2, 3, 4 ...

  6. [转]python与numpy基础

    来源于:https://github.com/HanXiaoyang/python-and-numpy-tutorial/blob/master/python-numpy-tutorial.ipynb ...

  7. python学习笔记(三):numpy基础

    Counter函数可以对列表中数据进行统计每一个有多少种 most_common(10)可以提取前十位 from collections import Counter a = ['q','q','w' ...

  8. Numpy基础数据结构 python

    Numpy基础数据结构 NumPy数组是一个多维数组对象,称为ndarray.其由两部分组成: 实际的数据 描述这些数据的元数据 1.一维数组 import numpy as np ar = np.a ...

  9. Python Numpy基础教程

    Python Numpy基础教程 本文是一个关于Python numpy的基础学习教程,其中,Python版本为Python 3.x 什么是Numpy Numpy = Numerical + Pyth ...

  10. NumPy基础操作

    NumPy基础操作(1) (注:记得在文件开头导入import numpy as np) 目录: 数组的创建 强制类型转换与切片 布尔型索引 结语 数组的创建 相关函数 np.array(), np. ...

随机推荐

  1. c——简单排序

    1.交换排序 a.冒泡排序 #include <stdio.h> int main() { , , , , }, i, j, t; ; i>=; i--) { ; j<i; j ...

  2. linux 下 mac 地址如何查询

    cat     /sys/class/net/eth0/address

  3. 可持久化trie学习笔记

    其实很早之前就想学习可持久化trie,不过由于换队友等情况,还是优先去学数论和计算几何,今天突然心血来潮学了一发可持久化trie,感觉还是蛮简单的,不过由于自己很长时间没写过可持久化了,都快忘了是个什 ...

  4. Actifio最新软件下载更新

    提供最近2个版本的软件. https://pan.baidu.com/s/10KajjJTMAKIHkRsfg3-A5g

  5. 集成direnv 与docker-compose 进行环境变量管理

    direnv 是一个不错的换将变量管理工具,同时日常的开发测试中我们使用docker-compose 会比较多,一般我们的玩法是 可以再docker-compose 中指定环境变量,可以通过envir ...

  6. 电路 - 基尔霍夫定律(KLL);节点流入电流等于流出电流。

    下面是我在学习STM32 中ADC测量电压,时候接触掉ADC的测量范围在0~3.3V 之间,不满足于实际使用,用于电路知识设计电压放大电路.(图片来自野火) 上面个的电路,可以等效出一个电路公式:(V ...

  7. 剑指offer 10.递归和循环 矩形覆盖

    题目描述 我们可以用2*1的小矩形横着或者竖着去覆盖更大的矩形.请问用n个2*1的小矩形无重叠地覆盖一个2*n的大矩形,总共有多少种方法?   当n=0时 ,target=0:   当n=1时 ,ta ...

  8. mybatis的逆向工程和中文注解

    由于MyBatis Generator自带了生成注释的功能,但是,是英文的而且生成的根本无法理解,所以可以通过,修改他的源码来实现生成中文的注释,具体方式有以下几种: 1) 自定义CommentGen ...

  9. JavaScript 原型和对象创建底层原理

    1. prototype/__proto__/constructor JS原型链和继承网上已经烂大街了,5毛可以买一堆,这里只提一下: constructor:普通对象和函数对象都有,指向创建它的函数 ...

  10. C++ 重定义、重载、覆盖

    想要用好C++继承和类自身函数实现就必须了解C++得三个概念重定义(redefine).重载(overload).重写(override). 一 基本感念 1 重定义(redefine) 派生类对基类 ...