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  找到唯一值并返回排序结果了 如下:

最新文章

  1. 【原创分享·微信支付】C# MVC 微信支付教程系列之现金红包
  2. 转: Eclipse自动提示功能
  3. POI 设置EXCEL单元格格式(日期数字文本等)
  4. java 抽象类和接口总结
  5. ionic使用sass
  6. .NET 4 并行(多核)编程系列之三 从Task的取消
  7. 简介alert()与console.log()的不同
  8. Java 泛型 泛型数组
  9. Linux线程的创建
  10. Luogu P1919 【模板】A*B Problem升级版(FFT快速傅里叶_FFT
  11. SHELL脚本--expr命令全解
  12. C#窗体打包步骤
  13. Typora使用说明(记录总结)
  14. Android so注入(inject)和Hook技术学习(三)——Got表hook之导出表hook
  15. spring中获取dao或对象中方法的实例化对象
  16. 外网无法ip访问服务器解决方法 (原)
  17. C# 获取电脑MAC地址,IP地址,物理内存,CPU序列号,硬盘ID..........................
  18. Java-Runoob-高级教程-实例-时间处理:04. Java 实例 - 时间戳转换成时间
  19. Maven 命令及其他备忘
  20. centos7 静默安装oracle

热门文章

  1. JAVA JDBC Template的使用
  2. 时间序列ARIMA模型
  3. PHP date_add() 函数
  4. Python math 模块、cmath 模块
  5. LeetCode 164. Maximum Gap[翻译]
  6. Springboot+swagger2.7集成开发
  7. 005_go语言中的for循环
  8. 9、Java 常用类 Math,Number子类,String,Character
  9. 基于索引的QA问答对匹配流程梳理
  10. [luogu4140] 奇数国