python科学计算2 数据组织形式与numpy入门

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 c

print(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+b
    return c

print(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秩,即轴的数量或维度的数量
.shapendarray对象的尺度,对于矩阵,n行m列
.sizendarray对象元素的个数,相当于.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.属性说明

属性说明
.dtypendarray对象的元素类型
.itemsizendarray对象中每个元素的大小,以字节为单位

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]
int1616位长度的整数,取值:[‐32768, 32767]
int3232位长度的整数,取值:[‐2
int6464位长度的整数,取值:[‐2
uint88位无符号整数,取值:[0, 255]
uint1616位无符号整数,取值:[0, 65535]
uint3232位无符号整数,取值:[0, 2
uint6432位无符号整数,取值:[0, 2
float1616位半精度浮点数:1位符号位,5位指数,10位尾数
float3232位半精度浮点数:1位符号位,8位指数,23位尾数
float6464位半精度浮点数: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
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python数据分析是指使用Python编程语言进行处理、数据可视化和数据建模的过程。下面是Python数据分析的入门步骤: 1. 安装Python和相关库:首先,你需要安装Python解释器。你可以从Python官方网站下载并安装最新版本的Python。在安装Python之后,你需要安装一些常用的数据分析库,如NumPy、Pandas和Matplotlib。你可以使用pip命令来安装这些库。 2. 学习Python基础知识:在开始进行数据分析之前,你需要掌握一些基本的Python编程知识,如变量、数据类型、条件语句、循环等。你可以通过阅读Python的官方文档或参考一些在线教程来学习Python基础知识。 3. 学习NumPy库:NumPyPython中用于科学计算的一个重要库。它提供了多维数组对象和一些用于操作数组的函数。学习NumPy可以帮助你更高效地处理和操作大量的数据。你可以通过阅读NumPy的官方文档或参考一些在线教程来学习NumPy。 4. 学习Pandas库:Pandas是Python中用于数据分析的一个强大库。它提供了高效的数据结构和数据分析工具,如DataFrame和Series。学习Pandas可以帮助你更方便地进行数据清洗、数据处理和数据分析。你可以通过阅读Pandas的官方文档或参考一些在线教程来学习Pandas。 5. 学习Matplotlib库:Matplotlib是Python中用于数据可视化的一个常用库。它提供了各种绘图函数和工具,可以帮助你将数据可视化为图表、图形和图像。学习Matplotlib可以帮助你更好地理解和展示数据。你可以通过阅读Matplotlib的官方文档或参考一些在线教程来学习Matplotlib。 6. 实践项目:最后,你可以通过实践一些数据分析项目来巩固所学的知识。你可以从一些开放的数据集中选择一个感兴趣的主题,然后使用Python进行数据清洗、数据处理和数据可视化。这样可以帮助你更深入地理解和应用Python数据分析的技术。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值