Numpy是用于数据科学计算的基础,不但能够完成科学计算任务,还能被
用作高效地多维数据容器。用于存储和处理大型矩阵。
Python提供了一个array模块,和list不同,它直接保存数值,但是由于
Python 的array模块不支持多维,也没有各种运算函数。
Numpy 弥补了这一遗憾。Numpy提供了一种存储单一数据类型的多维数
组——ndarray(下文统称数组)
1.数组属性:ndarray(数组)是存储单一数据类型的多维数组
2.数组创建(创建一维或多维数组)
array(p_object, dtype=None, copy=True, order='K', subok=False, ndmin=0)
import numpy as np
# ndarray的属性:
# 先去创建一个ndarray----借用列表创建一个arry
# arr = np.array([1,2,3,4,5,6])#一维数组
# arr = np.array([[1,2,3],[2,3,4]])#二维数组
# print('arr:',arr)
# print('arr维度',arr.ndim,type(arr.ndim))
# print('arr形状',arr.shape,type(arr.shape))
# print('arr大小',arr.size,type(arr.size))
# print('arr元素大小',arr.itemsize,type(arr.itemsize))
# print('arr数据类型',arr.dtype,type(arr.dtype))
使用arange函数创建数组(通过设置开始值,终止值,步长来穿件一维数组)
数组的创建:
参数1 开始.包含
参数2 截止.不包含
参数3 步长.
# arr = np.arange(1,10,2)
# print('arr:',arr)
# print('arr维度',arr.ndim,type(arr.ndim))
# print('arr形状',arr.shape,type(arr.shape))
# print('arr大小',arr.size,type(arr.size))
# print('arr元素大小',arr.itemsize,type(arr.itemsize))
# print('arr数据类型',arr.dtype,type(arr.dtype))
使用 linspace 函数创建数组(设定开始值、终止值和元素个数)
linspace创建 创建一个均匀分布数组的
参数1 开始 包含
参数2 截止 包含
参数3 元素个数
# arr = np.linspace(1,10,5)
# print('arr:',arr)
# print('arr维度',arr.ndim,type(arr.ndim))
# print('arr形状',arr.shape,type(arr.shape))
# print('arr大小',arr.size,type(arr.size))
# print('arr元素大小',arr.itemsize,type(arr.itemsize))
# print('arr数据类型',arr.dtype,type(arr.dtype))
logspace创建数组 生成一个等比数列
参数1 以10^开始次方 开始 包含
参数2 以10^结束次方 截止 包含
参数3 生成数组的元素个数
# arr = np.logspace(1,3,10)
# print('arr:',arr)
# print('arr维度',arr.ndim,type(arr.ndim))
# print('arr形状',arr.shape,type(arr.shape))
# print('arr大小',arr.size,type(arr.size))
# print('arr元素大小',arr.itemsize,type(arr.itemsize))
# print('arr数据类型',arr.dtype,type(arr.dtype))
使用zeros函数创建数组
# 生成数组的shape #全部都为0
# arr = np.zeros((2,3))二维数组
# print('arr:',arr)
使用eye函数创建数组
# 生成对角都为1的数组。里面参数是一个数,表示生成数组是几行几列
# arr = np.eye(3)二维数组
# print('arr:',arr)
使用diag函数创建数组
#生成指定对角元素数组。传入参数是多大,就生成几行几列
# arr = np.diag([1,2,3,4,5])#二维数组
# print('arr:',arr)
使用ones函数创建数组:创建的元素都为1
# 生成数组的shape #全部都为1
# arr = np.ones((2,3))二维数组
# print('arr:',arr)
#生成随机数:
# 生成指定参数0~~1之间的数组。。包含0不包含1
# arr = np.random.random(3) #生成三个随机数
# print(arr)
#生成均匀分布的数组。里面的参数表示几行几列
# arr = np.random.rand(2,3) #[0,1)
# print(arr)
符合正太分布的数组:
# u 均值 ---反映的是正态分布对称线的位置
# a 标准差 ---反映数据的离散程度,
# a 标准差越大,越离散,反映到图形上越平缓
# a 越小,越集中,图形越陡峭
# 里面的参数也是几行几列
# arr = np.random.randn(2, 3)
# print(arr)
#数组类型
# arr = np.array([[1,2,3],[2,3,4]],dtype = np.float64)#二维数组
# print('arr:',arr)
# print('arr数据类型',arr.dtype,type(arr.dtype))
#自定义数据类型:
# df = np.dtype([('name',np.str,40),('height',np.float64),('weight',np.float64)])
# # 创建数组,使用自定义数据类型
# arr = np.array([('刘亦菲',165.5,45.0),('户继芳',170.0,60.0),('小骚猪',130.9,90.0)],dtype = df)
# print(arr)
# print('arr类型',arr.dtype)