python科学计算2 数据组织形式与numpy入门
文章目录
- 1 数据组织
- 1.1 单个数据
- 1.2 数据组织
- 1.3 数据组织的形式
- 1.3.1一维数据
- 1.3.2 二维数据
- 1.3.3 多维数据
- 1.3.4 高维数据
- 1.4普通数据组织的缺点
- 2 numpy入门
- 2.1 ndarray对象介绍
- 2.2 ndarray的常用属性
- 2.2.1 与元素数量有关的属性1
- 2.2.2与元素类型有关的属性
1 数据组织
1.1 单个数据
一个整数可以表示一个数据,就是单个数据
1.2 数据组织
一堆数据组成一个整体,就是数据组织。python中常见的数据组织形式有列表,元组,字典,集合等等。
1.3 数据组织的形式
1.3.1一维数据
可以用普通的一维列表或者元组或者一维集合组织。
#一维数据
list1=[1,2,3]
set1=set(list1)
1.3.2 二维数据
列表或元祖的的二层嵌套
# 二维数据
list2=[[1,2,3],[4,5,6]]
1.3.3 多维数据
列表或者集合的多层嵌套,有几层括号就可以看作是几维数据。
1.3.4 高维数据
按照字面意思来说高维数据应该和多维数据意思差不多,其实不是这样,高维数据就是用键值对表示的,因此可以用python的字典数据类型表示高维数据。
#高维数据
dict1={"firstName":"huang"}
1.4普通数据组织的缺点
1.数据元素的类型不确定。例如下面的列表中有数字有字符串
list3=[1,2,"dasfasdf"]
2.对于不同的数据类型可能会有不同的运算,对于同一个组织里面的数据一般的运算应该是相同的。
例如这个组织3就是每个元素的值3.
3.不同的数据类型占据的空间不同,在大规模的运算中会降低效率
举例
这是利用普通的数据类型进行组织数据
def add1():a=[1,2,3,4,5]b=[1,2,3,4,5]c=[]for i in range(len(a)):c.append(a[i]+b[i])return cprint(add1())
利用特殊的类型进行组织,以矩阵为单位,看起来简单多了,
import numpy as np
def add2():a=np.array([1,2,3,4,5])b=np.array([1,2,3,4,5])c=a+breturn cprint(add2())
2 numpy入门
NumPy是一个开源的Python科学计算基础库,包含:
• 一个强大的N维数组对象 ndarray
• 广播功能函数
• 整合C/C++/Fortran代码的工具
• 线性代数、傅里叶变换、随机数生成等功能
NumPy是SciPy、Pandas等数据处理或科学计算库的基础
2.1 ndarray对象介绍
1.在上面的例子里我们已经知道ndarray的优越性,把矩阵封装为ndarray对象,重载了运算符,提供了一系列的实例方法。
ndarray是一个多维数组对象,也可以叫做矩阵对象,由两部分构成:
• 实际的数据
• 描述这些数据的元数据(数据维度、数据类型等)
2.创建简单的ndarry对象
ndarray(列表或元组)
可以这样创建简单矩阵和高维矩阵
import numpy as np
print(np.array([1,2,3,4]))
print(np.array((1,2,3,4)))
print(np.array([[1,2,3],[4,5,6]]))
2.2 ndarray的常用属性
2.2.1 与元素数量有关的属性1
1.属性说明
属性 | 说明 |
---|---|
ndim | 秩,即轴的数量或维度的数量 |
.shape | ndarray对象的尺度,对于矩阵,n行m列 |
.size | ndarray对象元素的个数,相当于.shape中n*m的值 |
2.属性解释
(1)轴和秩。(注意这里的秩与线性代数里的秩不是同一个概念,在这里要把自己想的笨一点,其实很简单)。
例如一个
test=np.array([[1,2,3],[4,5,6]])
二维数组(矩阵),有横轴和纵轴两个轴,那么秩为2,可以把它当作平面空间。元素6的轴为0(x轴)的值为1,轴为1(y轴)的值为2,可以认为他的索引是[1][2]
(2)其余的两个属性解释参考上面的表格。
3.属性实战
test=np.array([[1,2,3],[4,5,6]])
#test.ndim表示秩的数量
print(test.ndim)
print(test.shape)
print(test.size)
2
(2, 3)
6
2.2.2与元素类型有关的属性
1.属性说明
属性 | 说明 |
---|---|
.dtype | ndarray对象的元素类型 |
.itemsize | ndarray对象中每个元素的大小,以字节为单位 |
2.属性解释
(1)
不同的数据类型占的字节会不同空间大小,同时整形,浮点型,复数型下面也有好多的细分,不同的特定的类型占有不同的大小
精度整数(默认int32)<浮点数(默认float64)<复数(默认complex128),如果有一个元素是精度更高的,所有的元素都跟着精度高的元素进行转换
#整数
test1=np.array([[1,2,3],[4,5,6]])
print(test1,test1.dtype)
#浮点数
test2=np.array([[1,2,3.1],[4,5,6]])
print(test2,test2.dtype)
#复数
test3=np.array([[1,2,1+2j],[4,5,6]])
print(test3,test3.dtype)
[[1 2 3][4 5 6]] int32
[[1. 2. 3.1][4. 5. 6. ]] float64
[[1.+0.j 2.+0.j 1.+2.j][4.+0.j 5.+0.j 6.+0.j]] complex128
(2)numpy支持的数据类型(不包含字符,因为字符不用做科学计算)
类型后面的数字表示占了多少位的空间
数据类型 | 说明 |
---|---|
布尔类型 | True或False |
intc | 与C语言中的int类型一致,一般是int32或int64 |
intp | 用于索引的整数,与C语言中ssize_t一致,int32或int64 |
int8 | 字节长度的整数,取值:[‐128, 127] |
int16 | 16位长度的整数,取值:[‐32768, 32767] |
int32 | 32位长度的整数,取值:[‐2 |
int64 | 64位长度的整数,取值:[‐2 |
uint8 | 8位无符号整数,取值:[0, 255] |
uint16 | 16位无符号整数,取值:[0, 65535] |
uint32 | 32位无符号整数,取值:[0, 2 |
uint64 | 32位无符号整数,取值:[0, 2 |
float16 | 16位半精度浮点数:1位符号位,5位指数,10位尾数 |
float32 | 32位半精度浮点数:1位符号位,8位指数,23位尾数 |
float64 | 64位半精度浮点数:1位符号位,11位指数,52位尾数 |
complex64 | 复数类型,实部和虚部都是32位浮点数 |
3.属性实战
print(test.dtype)
print(test.itemsize)
int32
4
4.一种特殊的类型object
如果传入的数组像下面这种情况,列表不整齐(我也不知道怎么形容),就会认为一个list数组是一个元素。同时如果元素不是基本元素,是自定义的对象,也会认为是object
test4=np.array([[1,2,3],[4,5]])
print(test4,test4.dtype)
[list([1, 2, 3]) list([4, 5])] object
python科学计算2 数据组织形式与numpy入门相关推荐
- python 科学计算及数据可视化
第一步:利用python,画散点图. 第二步:需要用到的库有numpy,matplotlib的子库matplotlib.pyplot numpy(Numerical Python extensions ...
- python科学计算笔记(一)NumPy中ndarray对象、ufunc运算、矩阵运算
标准安装的Python中用列表(list)保存一组值,可以用来当作数组使用,不过由于列表的元素可以是任何对象,因此列表中所保存的是对象的指针.这样为了保存一个简单的[1,2,3],需要有3个指针和三个 ...
- python科学计算库安装
python科学计算相关的库包括numpy,scipy,matplotlib等,但是自己安装比较不容易,倒不是安装过程有多难,而是会出现各种各样的问题,现在做一记录 安装顺序numpy -> s ...
- numpy 创建加一行_数据科学|可视化图解Python科学计算包Numpy
文章申明 文章作者:梁斌伟 责任编辑:郭德真 微信编辑:玖蓁 本文转载自公众号 实战统计学 (ID:statrcn) 原文链接:可视化图解Python科学计算包NumPy 作者:梁斌伟 编者按: 你真 ...
- python科学计算三剑客_1-python数据分析-数据分析介绍、数据分析三剑客之NumPy
数据分析三剑客 numpy pandas(重点) matplotlib numpy模块 NumPy(Numerical Python) 是 Python 语言中做科学计算的基础库.侧重在于数值计算,也 ...
- python科学计算是什么意思_Python科学计算和数据分析(NumPy详细介绍)
本文介绍的科学计算.数据分析必备基础知识. 本文全文约2600字,阅读时间约15分钟,请你耐心观看. 本文使用的开发环境是Python3.8,Numpy版本是1.19,本文的例子全部经过验证,你可以直 ...
- python科学计算—— numpy
python科学计算-- numpy 1.模块导入 2. 数组的基本属性和操作 2.1 创建一维和二维数组 2.2 常用属性 2.3 调整数组的形状 2.4 将数组转化为list 2.5 numpy的 ...
- 初识 Python 科学计算库之 NumPy(创建多维数组对象)
文章目录 参考 描述 NumPy 特点 获取 导入 多维数组对象 np.array() np.asarray() 范围 随机 概览 np.random.randn() np.random.normal ...
- 视频教程-Python科学计算与图形渲染库-大数据
Python科学计算与图形渲染库 东北大学计算机专业硕士研究生,欧瑞科技创始人&CEO,曾任国内著名软件公司项目经理,畅销书作者,企业IT内训讲师,CSDN学院专家讲师,制作视频课程超过100 ...
最新文章
- R语言ggplot2可视化:绘制堆叠的密度图(Stacked Area Chart)
- linux uname 命令简介
- Java洛谷P5461 赦免战俘讲解
- ZBarSDK扫描二维码
- 监控最佳实践--redis及业务接口
- win32 c++源码大全_网站源码,服务器,域名三者是什么关系?
- 数学--数论--剩余系 与 完全剩余系 与 简化剩余系
- 计算机基础教育学,计算机基础教育教学改革与创新
- java基础知识系列---垃圾收集
- redis集群linux安装教程,linux下redis集群的原生安装方式部署
- 树莓派所用到的软件工具及获取方法汇总
- C盘 html后缀 删,磁盘清理c盘的后果是什么?
- 第七章:项目成本管理 - (7.3 制定预算)
- Postman 接口测试神器
- curl: (51)Unable to communicate securely with peer
- mmdetection安装
- activiti工作流研究——画流程图
- 阶层是一条漫长的阶梯,你能爬到第几层?
- 高质量程序设计指南:C++/C语言
- python怎么读数据_Python如何读取数据
热门文章
- 如何破解pdf编辑保护?
- cv2 和 matplotlib.pyplot 和 PIL.Image 读取图片方式对比【Python读取图片】
- C语言字符数组的输入输出
- EasyStreamClient对接海康流媒体V4.X实现无插件播放流程记录
- UKF学习笔记之匀速直线运动目标跟踪
- 沟通技巧-《演讲的力量》书中的精髓:战略上藐视演讲,战术上重视它。
- 重装系统后要选择windows 7 Loader XE 还是 windows 7
- 小猫爪:S32K3学习笔记08-S32K3之MCAL中的FEE
- Zebra 打印机 Android 端驱动接口开发及调用案例
- 简单css弹出菜单,ie8一定要在头部加!DOCTYPE html PUBLIC 。。。不然没反应。花了一个小时才找到这个原因,mlgbd!!...