数据的维度
一维数据
列表和数据
表示数据的有序结构,列表中数据类型可以不同,数组要求相同
列表——有序——[ ]
集合——无序——{ }
二维数据
由多个一维数据构成如表格
列表[ [ ],[ ],[ ] ]
多维数据
在一维或二维数据拓展而来
列表
高维数据
用二元关系展示复杂结构,json文件,即键值对的方式
字典或数据表示格式
JSON、XML、YAMY
numpy中的数组对象ndarray
引用
import numpy as np
ndarray
import numpy as np
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)
return c
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
if __name__ == '__main__':
print("pysum:")
print(pysum())
print("npsum:")
print(npsum())
数组对象ndarray可以去掉元素间运算所需要的循环
构成
实际数据
元数据
ndarray一般要求数据类型相同;而不同类型的ndarray不能发挥优势
ndarray有许多数据类型,能较好存储和提高性能;有利于合理利用存储空间,合理评估程序规模
创建
- x=np.array(列表/元组)
- 函数:np.arrange(n);np.ones(shape)…
- 其他函数
维度变换
.reshape(shape)返回新创建数组
.resize(shape)改变原数组
.flatten() 降维
>>> x=a.reshape((2,2))
>>> x
array([[ 0. , 3.33333333],
[ 6.66666667, 10. ]])
>>> a.resize((2,2))
>>> a
array([[ 0. , 3.33333333],
[ 6.66666667, 10. ]])
>>> a.flatten()
array([ 0. , 3.33333333, 6.66666667, 10. ])
索引和切片
一维数据 索引:a[0] 切片:[1:4:2]起始编号:终止编号(不含):步长
多维数组
索引,逗号分隔
切片
计算
数组的运算可以应用于数组中每一个元素
这些函数一般会返回新生成的数组,原数组不会被改变
二元函数