ndarray,N维数组对象(矩阵)

  • 所有元素必须是相同类型
  • ndim属性,维度个数
  • shape属性,各维度大小
  • dtype属性,数据类型

创建ndarray

  • np.array(collection),collection为序列对象(list),嵌套序列(list of list)
  • np.zeros,np.ones,np.empty指定大小的全0或全1数组

注意:第一个参数是元组,用来指定大小,如(3,4),第二个参数是数据类型

empty不是总是返回全0,有时返回的是末初始的随机值

如:

np.zeros((3,4))   #3行4列  数值全为0的数组,里面的参数是元组 (3,4)

np.empty((3,3))  #3行3列,随机数组成的数组

np.empty((3,3),int)  #ndarray 第一个元组(3,3)  第二个参数是数据类型 int

创建ndarray

np.arange()类似range() 注意是arange,不是英文的arrange

ndarray数据类型

  • dtype,类型名+位数,如float64,int32
  • 转换数组类型 astype

import numpy as np
zeros_float_arr = np.zeros((3,4),dtype = np.float64)
print(zeros_float_arr)
print(zeros_float_arr.dtype)

zeros_int_arr = zeros_float_arr.astype(np.int32)
print(zeros_int_arr)
print(zeros_int_arr.dtype)

矢量化

  • 矢量运算,相同大小的数组健间的运算应用在元素上
  • 适量和标量运算,"广播"-将标量"广播"到各个元素

矢量与矢量运算

arr = np.array([[1,2,3],

          [4,5,6]])

矢量与标量运算

print(1./arr)

print(2*arr)

索引与切片

  • 一维数组的索引与python的列表索引功能类似
  • 多维数组的索引

arr(r1:r2,c1:c2]

arr[1,1]等价arr[1][1]

[:]代表某个维度的数据

如:[r1:,c1:] 从开始到所有

arr[:,1:3]  二维数组的所有行和第1第2两列

条件索引

  • 布尔值多维数组 arr[condition] condition可以是多个条件组合
  • 注意,多个条件组合要使用& | ,而不是and or   

维数转换

  • 转置transpose
  • 高维数组转置要指定维度编号(0,1,2,....)

通用函数

  • 元素级运算

常用的通用函数

  • ceil,向上最接近的整数
  • floor,向下最接近的整数
  • rint,四舍五入
  • isnan,判断元素是否为 NaN(Not a Number)
  • multiply,元素相乘
  • divide,元素相除

np.where

  • 矢量版本的三元表达式 x if condition else y
  • np.where(condition,x,y)   满足条件输出x,不满足条件输出y
  • 如:

跟np.rint差不多

np.rint不会改变原数组的数值类型,如果需要,如可以用 arr.astype(np.int32)

常用的统计方法

  • np.mean,np.sum
  • np.max,np.min
  • np.std,np.var
  • np.argmax,np.argmin
  • np.cumsum,np.cumprod
  • 注意多维的要指定统计的维度,否则默认是全部维度上做统计.

np.any  判断是否数组里面任一值某一条件,如果有满足的,则为True,如果都不满足则为False

np.all    判断是否数组里面所有的值都满足某一条件,如果满足则为True,否则则为False

np.unique  找到唯一值并返回排序结果了 如下:

NumPy笔记-ndarray的更多相关文章

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

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

  2. 什么是Numpy的ndarray

    什么是Numpy的ndarray 首先,Numpy的核心是ndarray. 然后,ndarray本质是数组,其不同于一般的数组,或者Python 的list的地方在于它可以有N 维(dimention ...

  3. 发现Boost官方文档的一处错误(numpy的ndarray)

    文档位置:https://www.boost.org/doc/libs/1_65_1/libs/python/doc/html/numpy/tutorial/ndarray.html shape在这里 ...

  4. Numpy:ndarray数据类型和运算

    Numpy的ndarray:一种多维数组对象 N维数组对象,该对象是一个快速而灵活的大数据集容器,nadarry是一个通用的同构数据多维容器,也就是说,其中的所有元素必须是相同类型的.每个数组都有一个 ...

  5. 理解numpy中ndarray的内存布局和设计哲学

    目录 ndarray是什么 ndarray的设计哲学 ndarray的内存布局 为什么可以这样设计 小结 参考 博客:博客园 | CSDN | blog 本文的主要目的在于理解numpy.ndarra ...

  6. NumPy之:ndarray多维数组操作

    NumPy之:ndarray多维数组操作 目录 简介 创建ndarray ndarray的属性 ndarray中元素的类型转换 ndarray的数学运算 index和切片 基本使用 index wit ...

  7. NumPy之:ndarray中的函数

    NumPy之:ndarray中的函数 目录 简介 简单函数 矢量化数组运算 条件逻辑表达式 统计方法 布尔数组 排序 文件 线性代数 随机数 简介 在NumPy中,多维数组除了基本的算数运算之外,还内 ...

  8. 利用Python进行数据分析(4) NumPy基础: ndarray简单介绍

    一.NumPy 是什么 NumPy 是 Python 科学计算的基础包,它专为进行严格的数字处理而产生.在之前的随笔里已有更加详细的介绍,这里不再赘述. 利用 Python 进行数据分析(一)简单介绍 ...

  9. Numpy之ndarray与matrix

    1. ndarray对象 ndarray是numpy中的一个N维数组对象,可以进行矢量算术运算,它是一个通用的同构数据多维容器,即其中的所有元素必须是相同类型的. 可以使用array函数创建数组,每个 ...

随机推荐

  1. JAVA基础1(语法)

    一.标识符和关键字 在程序中用于定义名称的都为标识符,如文件名称.类名称.方法名称或变量名称等. 在Java中标识符的定义格式由字母.数字._(下划线),$所组成,其中不能重复,不能以数字开头,不能是 ...

  2. mongo安装和cmd运行命令

    一.安装方式 安装mongodb :www.mongodb.com next-->complete-->Instal MongoD as Service 不勾选 --> Instal ...

  3. 《Python编程快速上手 —让繁琐工作自动化》|百度网盘免费下载|Python自动化办公

    Python编程快速上手—让繁琐工作自动化 提取码:u8vj 如今,人们面临的大多数任务都可以通过编写计算机软件来完成. Python 是一种解释型.面向对象.动态数据类型的高级程序设计语言.通过 P ...

  4. 如何用Excel进行预测分析?

      [面试题] 一个社交APP, 它的新增用户次日留存.7日留存.30日留存分别是52%.25%.14%. 请模拟出来,每天如果日新增6万用户,那么第30天,它的日活数会达到多少?请使用Excel进行 ...

  5. jmeter 命令行模式(非GUI)运行脚本,察看结果树结果为空,解决办法;

    jmeter的bin目录下,打开命令窗口,执行jmeter -n -t jmeter脚本 -l 结果: 执行结束后,聚合报告打开结果,显示错误率100%:察看结果树中打开结果,显示无数据: 解决办法: ...

  6. Qt自定义控件之仪表盘1--简单的贴图仪表盘

    0.前言 学程序首先要输出hell world,学电子要先来个流水灯.学Qt,那就必须先来个自定义控件,若有人问我从哪个下手,我推荐仪表盘,可简可繁,从低配到高配齐全,可入门也可进阶. 1.仪表盘解析 ...

  7. 下载数据到csv中(乱码),使用numpy , pandas读取失败 解决方案

    读取数据,下载数据到 csv 文件中 allUniv 列表类型[[...],[...]] 字符集编码使用 utf-8-sig with open('文件名.csv','w',newline='',en ...

  8. 女生学Java编程是什么感受?

    那我就代表女生来说说感受 在编程的世界很难遇到好看的帅哥 记得当年15年7月4号是我实习生入职的日子,因为是校企合作,所以没有面试.老师推荐.直接入职.刚来北京第一个感觉就是人多,还有就是热.刚到公司 ...

  9. Python File isatty() 方法

    概述 isatty() 方法检测文件是否连接到一个终端设备,如果是返回 True,否则返回 False.高佣联盟 www.cgewang.com 语法 isatty() 方法语法如下: fileObj ...

  10. PHP timezone_version_get() 函数

    ------------恢复内容开始------------ 实例 返回时区数据库的版本: <?phpecho timezone_version_get();?> 运行实例 » 定义和用法 ...