Python的数据分析与展示---Numpy维度和ndarray数组对象
2.1 Numpy数据的维度1.维度:一组数据的组织形式一维数据—列表和集合类型2.列表与数组相同点:都是一组数据的有序结构区别:列表的数据类型可不同;而数组的数据类型相同。3.二维数据----列表由多个一维数据构成,是一维数据的组合形式。4.多维数据----列表由一维或二维数据在新维度上扩展形成。5.高维数据(键值对组织起来)—字典或数据表示格式2.2Numpy的数组对...
2.1 Numpy数据的维度
1.维度:一组数据的组织形式
一维数据—列表和集合类型
2.列表与数组
相同点:都是一组数据的有序结构
区别:列表的数据类型可不同;而数组的数据类型相同。
3.二维数据----列表
由多个一维数据构成,是一维数据的组合形式。
4.多维数据----列表
由一维或二维数据在新维度上扩展形成。
5.高维数据(键值对组织起来)—字典或数据表示格式
2.2Numpy的数组对象ndarray
一、Numpy是一个开源的Python科学计算基础库。
1.一个强大的N维数组对象ndarray
2.广播功能函数
3.整合C/C++/Fortran代码的工具
4.线性代数、傅里叶变换、随机生成树等功能
Tip:Numpy是SciPy、Pandas等数据处理或科学计算库的基础
二、Numpy的引用
import numpy as np
三、为什么需要额外的数据类型
eg.计算A2+B3
①用Python写
def pySum():
a=[0,1,2,3,4]
b=[9,8,7,6,5]
c=[]
//注意此处
for i in range(len(a)):
c.append(a[i]**2+b[i]**3)
print(c)
return c
sum=pySum()
print(sum)
②引用Numpy后
import numpy as np
def npSum():
a=np.array([0,1,2,3,4])
b=np.array([9,8,7,6,5])
//注意对比
c=a**2+b**3
return c
print(npSum())
运行结果的对比:
后者,也就是引用np.array()的代码结果 ,没有逗号。
①数组对象可以去掉元素间运算所需的循环,使一维象类更像单个数据
②设置专门的数组对象,经优化后,可以提升这类应用的运算速度。
Tip:其实Numpy的底层是由C语言实现的
四、N维数组对象:ndarray
ndarray是一个多维数组对象,由两部分组成:
实际的数据+描述这些数据的元数据(数据维度、数据类型)
ndarray数组要求:
①所有元素类型相同
②数组下边从0开始
五、实例
import numpy as np
a=np.array([[0,1,2,3,4],[9,8,7,6,5]])
print(a)
1.ndarray在程序中的别名是array
2.np.array()输出成[…]形式,元素由空格分隔
轴(axis): 保存数据的维度 秩(rank):轴的数量
可参考:https://blog.csdn.net/weixin_40974922/article/details/93496508
六、ndarray对象的属性
属性 | 说明 |
---|---|
.ndim | 秩,即轴的数量或维度的数量 |
.shape | ndarray对象的尺度,对于矩阵,n行m列 |
.size | ndarray对象元素的个数,相当于.shape中n*m的值 |
.dtype | ndarray对象的元素类型 |
.itemsize | ndarray对象中每个元素的大小,以字节为单位 |
例子:
import numpy as np
a=np.array([[0,1,2,3,4],[9,8,7,6,5]])
print(a.ndim)
print(a.shape)
print(a.size)
print(a.dtype)
print(a.itemsize)
七、ndarray的元素类型
数据类型 | 说明 |
---|---|
bool | 布尔类型,True or False |
intc | 与C语言的int类型一致,一般是int32或int64 |
intp | 用于索引的整数,与C语言中ssize_t一致,int32或int64,具体与计算机有关 |
int8 | 字节长度的整数,取值:[-128,127] |
int16 | 16位长度的整数,取值:[-32768,32767] |
int32 | 32位长度的整数,取值:[-231,231-1] |
int64 | 64位长度的整数,取值:[-263,263-1] |
uint8 | 8位无符号的整数,取值:[0,255] |
uint16 | 16位无符号的整数,取值[0,65535] |
uint32 | 32位无符号的整数,取值[0,232-1] |
uint64 | 64位无符号的整数,取值[0,264-1] |
float16 | 16位精度浮点数:1位符号位,5位指数,10位尾数 |
float32 | 32位精度浮点数:1位符号位,8位指数,23位尾数 |
float64 | 64位精度浮点数:1位符号位,11位指数,52位尾数 |
complex64 | 复数类型,实部与虚部都是32位浮点数 |
complex128 | 复数类型,实部与虚部都是64位浮点数 |
八、为何有这么多数据类型?
对比:Python语法支持整数、浮点数和复数三种类型
1.科学计算涉及数据较多,对存储和性能都有较高要求
2.数据类型的精准定义,有助于Numpy合理使用存储空间并优化性能
3.对元素类型的精准定义,有助于程序员对程序规模的合理评估
实例
1.ndarray可以由非同质对象组成
2.非同质ndarray元素为对象类型(object)
3.非同质ndarray对象无法有效发挥,尽量避免使用
更多推荐
所有评论(0)