数据分析-numpy1

numpy

  • numpy是什么?
  • 使用Numpy可以方便的使用数组、矩阵进行计算
  • 包含线性代数、傅里叶变换、随机生成等大量函数
  • numpy创建数组

在这里插入图片描述

array创建数组

引入numpy
import numpy as np
元组
np.array((1,2,3,4,5))

数组
a=np.array([1,2,3,4,5])
b=np.array(a)
#b=a

迭代对象
np.array(range(10))

生成器
np.array([i**2 for i in range(10)])
  • 练习1:创建10以内偶数的数组
import numpy as np
a=np.array([i for i in range(10) if i%2==0])
  1. 设置dtype参数,默认自动识别
a=np.array([1,2,3,4,5])
has_dtype_a=np.array([1,2,3,4,5],dtype='float')
结果:array([1.,2.,3.,4.,5.])

思考:将浮点设置成整型

np.array([1.1,2.5,3.8,4,5],dtype='int')  #强制转换直接取整
结果:[1,2,3,4,5]
  1. 设置coppy参数,默认为True
a=np.array([1,2,3,4,5])
b=np.array(a)
print('a',id(a),' b',id(b))
#两者地址不同

a=np.array([1,2,3,4,5])
b=a
#两者地址相同

a=np.array([1,2,3,4,5])
b=np.array(a,copy=False)
#两者地址相同
  1. ndmin用于指定数组的维度
a=np.array([1,2,3],ndmin=2)
a.ndim
  1. subok参数,类型为bool值,默认False。为True,使用object的内部数据类型;False:使用数组的数据类型
#创建一个矩阵
a=np.mat([1,2,3,4])
#复制副本,保持原类型
b=np.array(a.subok=True)
c=np.array(a) #默认为False
#a、b类型相同

arange()生成区间数组

在这里插入图片描述

np.arange(3.1)
#array[0.,1.,2.,3.]

np.arange(5,dtype=float)
#array[0.,1.,2.,3.,4.,5.]
  • linspace()等差数列
    在这里插入图片描述
#包含终止值
a=np.linspace(2.0,5.0,num=5,endpoint=False)
  • logspace()等比数列
    在这里插入图片描述
a=np.logspace(0,9,10,base=2)
#省略base,默认为10

numpy数组属性

在这里插入图片描述

  • ndarray.shape
    返回一个包含数组维度的元组,对于矩阵,n行m列,它也可以用于调整数组维度
    在这里插入图片描述
  • 调整维度reshape
a=np.arange(20).reshape((4,5))
  1. 调整维度resize
    在这里插入图片描述
    在这里插入图片描述

切片和索引

在这里插入图片描述

ar1=np.arange(10)
ar2=ar1[2:7:2]
结果:ar2([2,4,6])

注意
1:切片可以使用省略号"…",如果在行位置,打印所有行元素。反之,则包含所有列元素
2:返回第二列后所有元素ar4[…,1:]
3:返回第二列后的所有项 ar4[…][1]

numpy广播机制

在这里插入图片描述

a=np.array([1,2,3,4])
b=np.array([10,20,30,40])
c=a*b
print(c)

在这里插入图片描述

a=np.array([[0,0,0],
   [10,10,10],
   [20,20,20],
   [30,30,30]
  ])
b=np.array([0,1,2])
print((a+b))
结果:
[[ 0  1  2]
 [10 11 12]
 [20 21 22]
 [30 31 32]]
  • 广播规则
    在这里插入图片描述
  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值