Python数据分析(4)-numpy数组的属性操作
时间:2022-06-22
本文章向大家介绍Python数据分析(4)-numpy数组的属性操作,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
numpy数组也就是ndarray,它的本质是一个对象,那么一定具有一些对象描述的属性,同时,它还有元素,其元素也有一些属性。本节主要介绍ndarray以及其元素的属性和属性的操作。
1. ndarray的属性
ndarray有两个属性:维度(ndim)和每个维度的大小shape(也就是每个维度元素的个数)
import numpy as np
a = np.arange(24)
a.shape=(2,3,4)
print('数组为:', a)
print('数组的维度:', a.ndim)
print('数组维度的大小',a.shape)
输出:
数组为: [[[ 0 1 2 3]
[ 4 5 6 7]
[ 8 9 10 11]]
[[12 13 14 15]
[16 17 18 19]
[20 21 22 23]]]
数组的维度: 3
数组维度的大小 (2, 3, 4)
对于ndarray数组的属性的操作只能操作其shape,也就是每个维度的个数,同时也就改变了维度(shape是一个元组,它的长度就是维度(ndim)),下面介绍两种改变数组shape的方式:
import numpy as np
a = np.arange(24)
a.shape=(2,3,4)
# a.shape=(4,6),直接对a进行操作
a.shape = (4,6)
print('a:',a)
#a.reshape(3,8)是返回一个修改后维度大小的新数组,不会修改原来的数组a
b = a.reshape(3,8)
print('b:',b)
输出:
a: [[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
b: [[ 0 1 2 3 4 5 6 7]
[ 8 9 10 11 12 13 14 15]
[16 17 18 19 20 21 22 23]]
notes:
1.对shape直接赋值的方式是修改原数组的属性,没有返回新的数组。reshape的方式不会修改原数组的属性,一定会返回一个新的数 组。 2. 修改属性的时候,属性元素之和一定要等于数组的元素之和,例如原数组有24个元素,则属性只能修改为:一维:(24,)二维:(2,12)、(3,8)、(4,6),三维:(2,3,4),四维:(2,3,2,2)等
2. ndarray元素的属性
- 单个元素所占存储的字节数:itemsize
- 其他属性:flags
import numpy as np
a = np.arange(24)
a.shape=(2,3,4)
print('单个元素所占字节数:',a.itemsize)
print('元素其他属性:',a.flags)
输出:
单个元素所占字节数: 4
元素其他属性: C_CONTIGUOUS : True
F_CONTIGUOUS : False
OWNDATA : True
WRITEABLE : True
ALIGNED : True
WRITEBACKIFCOPY : False
UPDATEIFCOPY : False
3. ndarray元素的类型
import numpy as np
a = np.arange(24)
a.shape=(2,3,4)
print('元素的类型',a.dtype)
# 对dtype直接复制是直接在原数组上修改的方式
a.dtype= 'float32'
print('修改后的元素的类型',a.dtype)
# astype不会修改原数组的类型,会返回一个新的数组
b=a.astype('int32')
print('修改后a的元素的类型',a.dtype)
print('修改后b的元素的类型',b.dtype)
元素的类型 int32
修改后的元素的类型 float32
修改后a的元素的类型 float32
修改后b的元素的类型 int32
notes: 注意dtype直接复制与astype的区别
- weblogic下部署应用时slf4j与logbak冲突的解决办法
- 介绍一位OWin服务器新成员TinyFox
- javascript: 带分组数据的Table表头排序
- 域名资讯:昨日域名成交2897个,成交额达300多万元
- 2017年12月编程语言排行榜:C语言再次崛起,有望成为2017年度编程语言
- WordPress 免插件仅代码实现 Gravatar 头像缓存
- Spring JDBCTemplate使用JNDI数据源
- 大家之前是不是误解了DC/OS与Kubernetes之间的关系
- CentOS 7 上部署Mono 4 和Jexus 5.6
- maven学习(下)利用Profile构建不同环境的部署包
- AS3初学者容易迷糊的几个问题
- Spring Security笔记:自定义Login/Logout Filter、AuthenticationProvider、AuthenticationToken
- ASP.NET Web API 2.1支持Binary JSON(Bson)
- Spring Security笔记:自定义登录页
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Linux 如何手动释放Swap、Buffer和Cache
- 浙大版《C语言程序设计(第3版)》题目集 练习4-6 猜数字游戏
- 浙大版《C语言程序设计(第3版)》题目集 练习4-7 求e的近似值
- TypeScript高级类型备忘录(附示例)
- 浙大版《C语言程序设计(第3版)》题目集 练习4-10 找出最小值
- 牛逼!力挺一款实用的 Linux 资源监视工具
- 浙大版《C语言程序设计(第3版)》题目集 练习4-11 统计素数并求和
- 浙大版《C语言程序设计(第3版)》题目集 习题4-1 求奇数和
- Kotlin 使用DSL构建语法结构 看这一篇就够了~
- 浙大版《C语言程序设计(第3版)》题目集 习题4-2 求幂级数展开的部分和
- 2020 年 9 月编程语言排行榜
- 浙大版《C语言程序设计(第3版)》题目集 习题4-3 求分数序列前N项和
- 浙大版《C语言程序设计(第3版)》题目集 习题4-4 特殊a串数列求和
- 一个可能让你的页面渲染速度提升数倍的CSS属性
- 浙大版《C语言程序设计(第3版)》题目集 习题4-6 水仙花数