数据分析 ---- numpy

​ Numpy是用于数据科学计算的基础,不但能够完成科学计算任务,还能被用作高效地多维数据容器。用于存储和处理大型矩阵。
​ Python提供了一个array模块,和list不同,它直接保存数值,但是由于
Python 的array模块不支持多维,也没有各种运算函数。
​ Numpy 弥补了这一遗憾。Numpy提供了一种存储单一数据类型的多维数组——ndarray。

​ ndarray 数据存储方式和list不一样,它是一块整体的内存来存储数据存储风格有2:C【按行存储】 ,F【按列存储】。

''' 
数组属性
ndim --维度
shape -- 形状
size -- 元素个数
dtype -- 数据类型
itemsize -- 数组中每个元素的大小
'''
import numpy


arr = numpy.array([[[1,2,3],[4,5,6],[7,8,9]],[[2,3,4],[9,8,7],[5,6,4]]])


print('数组的维度 : ',arr.ndim)
print('数组的形状 : ',arr.shape) # 2块 3行3列
print('数组的元素个数 : ',arr.size)
print('数组的数据类型 : ',arr.dtype)
print('数组的每个元素的大小 : ',arr.itemsize)

数组的创建

import numpy

print('--------------------------------------------------------------------')
# 使用arange创建数组
arr = numpy.arange(0,6,2)
print(arr)

print('--------------------------------------------------------------------')
# 使用linspace创建数组——元素之间’等差‘
# 参数1 开始位置
# 参数2 结束位置
# 参数3 创建数组元素的个数
arr= numpy.linspace(0,6,7)
print(arr)

print('------------------------------------------------------------------')
# 使用logspace创建函数--元素之间’等比‘
# 参数1 开始位置 10^0
# 参数2 结束位置 10^2
# 参数3 创建数组元素的个数
arr = numpy.logspace(0,2,5)
print(arr)

print('------------------------------------------------------------------')
# ones --生成所有元素都为 1 的数组
arr = numpy.ones(shape=(2,3))
print(arr)

print('------------------------------------------------------------------')
# zeros --生成所有元素都为 0 的数组
arr = numpy.zeros(shape=(2,3))
print(arr)

print('------------------------------------------------------------------')
# eye--生成一种类似单位矩阵的数组
# 参数k 决定对角线的位置
# 参数k<0 ,对角线上移k个位置
# 参数k>0,对角线下移k个位置
# 参数k超出范围,是个(3,3)都为0的数组
arr = numpy.eye(3,3,k=0)
print(arr)

print('------------------------------------------------------------------')
# diag 生成一个对角矩阵数组,参数为对角线上的值
# k 上移,下移 和eye 一样
arr = numpy.diag([1,3,5,7],k=0)
arr1 = numpy.diag([[1,3,5,7],[2,4,6,8]])
print(arr,'\n',arr1)

print('------------------------------------------------------------------')
# 生成 (0,1)的随机数据的随机数组
arr = numpy.random.random(5)
arr1 = numpy.random.random((2,3))
print(arr,'\n',arr1)

print('------------------------------------------------------------------')
# 生成随机数据的均匀分布的数组
arr = numpy.random.rand(5)
arr1 = numpy.random.rand(2,3)
print(arr,'\n',arr1)

print('------------------------------------------------------------------')
# 正态分布 ---概率分布--需要大量数据支持
# 标准正太分布
# 均值为0  标准差 为1
# 均值反应的数据的位置
# 标准差反应的是 数据的离散程度

# # 生成一个符合正态分布的数组
# # 生成的是标准正态分布的数组
# # 参数为 元素个数 或者 行列数
arr = numpy.random.randn(2,3)
print(arr)

print('------------------------------------------------------------------')
# 生成固定范围内的,固定形状的数组
#如果不传size ,那么生成一个随机整数
arr = numpy.random.randint(0,5,size=[2,3])
arr1 = numpy.random.randint(0,5)
print(arr,'\n',arr1)


数组形状,类型的更改
import numpy

# 更改形状 -- 元素个数必须一致
arr = numpy.arange(6)
print(arr)

#更改为2行3列的数组【元素的个数必须一致】
arr.shape = (2,3)
print(arr)

#rashape【方法】 -- 返回一个新的数组【shape是一种属性】
new_arr= arr.reshape((2,3))
print(new_arr)

#dtpye -- 数据类型【设计数据类型】
# numpy.int32
# numpy.int64
# numpy.float64

arr = numpy.arange(9,dtype=numpy.int32).reshape((3,3))
print(arr)

# 也可以强制转化

# 在numpy里面 0 转化为Bool类型  为False
# 非0 转化为bool 为True
print(numpy.bool(1))
print(numpy.bool(0))


# 自定义数据类型

df = numpy.dtype([('name',numpy.str_,20),('height',numpy.float64),('weight',numpy.float64)])

arr = numpy.array([('小明',175.5,75.5),('小港',185.5,85.5),('小王',195.5,95.5)],dtype=df)
print(arr)
print(arr.dtype)
# [('小明', 175.5, 75.5) ('小港', 185.5, 85.5) ('小王', 195.5, 95.5)]
# [('name', '<U20'), ('height', '<f8'), ('weight', '<f8')] '<U20' 为编号【简写】
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值