NumPy笔记

NumPy笔记

NumPy对象

NumPy中的ndarray是个多维数组对象,该对象由两部分组成

  • 实际数据
  • 描述这些数据的元数据

大部分的数组操作仅仅修改元数据部分,而不改变底层的实际数据

NumPy数组一般是同质的(但有一种特殊的数组类型例外,它是异质的),即数组中的所有元素类型必须是一致的。这样有一个好处:如果我们知道数组中的元素均为同一类型,该数组所需的存储空间就很容易确定下来。

  • 创建一维数组
import numpy as np
a = np.arange(5)
print(a)    # a = array([0, 1, 2, 3, 4])
print(a.dtype)  # a 的数据类型  int32 
print(a.shape)  # a 的维度  (5,)
  • 创建多维数组
import numpy as np
m = np.array([np.arange(5), np.arange(5)])
print(m)
print(m.dtype)
print(m.shape)  # m 的维度 (2,5)
print(m[1,2])   # 数组中的值

NumPy 数据类型

类型描述
bool用一位存储的布尔类型(值为TRUE或FALSE)
inti由所在平台决定其精度的整数(一般为int32或int64)
int8整数,范围为128至127
int16整数,范围为32 768至32 767
int32整数,范围为231至231 1
int64整数,范围为263至263 1
uint8无符号整数,范围为0至255
uint16无符号整数,范围为0至65 535
uint32无符号整数,范围为0至2321
uint64无符号整数,范围为0至2641
float16半精度浮点数(16位):其中用1位表示正负号,5位表示指数,10位表示尾数
float32单精度浮点数(32位):其中用1位表示正负号,8位表示指数,23位表示尾数
float64或float双精度浮点数(64位):其中用1位表示正负号,11位表示指数,52位表示尾数
complex64复数,分别用两个32位浮点数表示实部和虚部
complex128或complex复数,分别用两个64位浮点数表示实部和虚部

在NumPy中,许多函数的参数中可以指定数据类型,通常这个参数是可选的

import numpy as np
a = np.arange(7, dtype='uint8')
print(a)

数据类型对象

数据类型对象是numpy.dtype类的实例。

NnmPy 字符编码

数据类型字符编码
整数i
无符号整数u
单精度浮点数f
双精度浮点数d
布尔值b
复数D
字符串S
unicode字符串U
void (空)V

dtype 类的属性

一维数组的索引和切片

一维数组的切片操作与Python列表的切片操作很相似

数组的组合

NumPy数组有水平组合、垂直组合和深度组合等多种组合方式,我们将使用vstack(Y轴组合)、
dstack(Z轴组合)、hstack(X轴组合)、column_stack(x轴组合)、row_stack(y轴组合)以及concatenate函数来完成数组的组合

数组的分割

NumPy数组可以进行水平、垂直或深度分割,相关的函数有hsplitvsplitdsplit和split。我们可以将数组分割成相同大小的子数组,也可以指定原数组中需要分割的位置。

数组的属性
除了shapedtype属性以外,ndarray对象还有很多其他的属性,在下面一一列出:

  • ndim属性,给出数组的维数,或数组轴的个数
  • size属性,给出数组元素的总个数
  • itemsize属性,给出数组中的元素在内存中所占的字节数
  • nbytes属性来查看整个数组所占的存储空间。这个属性的值其实就是itemsize和size属性值的乘积
  • T属性的效果和transpose函数一样,如下所示

numpy 常用函数

  • 生成单位矩阵 np.eye()
  • 存储数据savetxt()
  • 读取csv文件np.loadtxt()
  • 加权平均值 np.average(x,weights=y) 其中x为初始数据,y为加权值
  • 算术平均值 np.mean()
  • 最大值 np.max()
  • 最小值np.min()
  • 中位数np.median()
  • 方差 np.var()
  • 相邻元素差值np.deff()
  • 自然对数np.log()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值