python numpy

01numpty numpy.array 基础

#!/usr/bin/env python
# coding: utf-8

# In[1]:

# numpy引入
import numpy


# In[2]:


# 查看版本
numpy.__version__


# ### python List特点  
# 1,比较灵活同时效率也会低:不对类型做限制,list中可以是数字、字符串、Boolean类型

# In[3]:


L = [i for i in range(10)]
L


# In[4]:


L[5] = "字符串"
L[6] = bool(False)
L[7] = bool(True)
L


# ### array.array 其中类型会有限制,只能是字符类型或数字/数组类型  
# 没有相应的向量运算

# In[5]:


import array
arr = array.array('i', [i for i in range(10)])
arr


# In[6]:


arr[0]


# ### numpy.array
# 创建数组:nparr = np.array([i for i in range(10)])  
# nparr.dtype:返回数组类型,数组一旦定义再赋值其他值会转换

# In[7]:


import numpy as np
nparr = np.array([i for i in range(10)])
nparr


# In[8]:


# 返回类型长度
nparr.dtype


# In[9]:


# 赋值为浮点数,自动转换为int
nparr[1] = 3.14
print(nparr)
nparr.dtype


# In[10]:


# 浮点类型,输入整数会转为浮点类型
nparr2 = np.array([0,1,3.0])
print(nparr2)
nparr2.dtype


# ### 其他创建数组的方法
# 创建0数组,默认为浮点类型,也可传入数据类型  
# npzeros = np.zeros(10)  
# 传入元组,传入类型,生成三行三列数组/矩阵
# npzeros = np.zeros((3,3), dtype=int)  
#   
# 生成全为1的数组/矩阵  
# npones = np.ones(10)  
#   
# 创建指定值矩阵  
# npfull = np.full((3, 5), 666)  
# 
# 也可以指明具体,默认为int  
# npfull = np.full(shape=(5,5), fill_value=555)

# In[11]:


# 创建0数组,默认为浮点类型,也可传入数据类型
npzeros = np.zeros(10)
print(npzeros)
npzeros.dtype


# In[12]:


# 传入元组,传入类型,生成三行三列数组
npzeros = np.zeros((3,3), dtype=int)
print(npzeros)


# In[13]:


# 生成全为1的数组
npones = np.ones(10)
print(npones)
npones1 = np.ones((5,5), dtype=int)
print(npones1)


# In[14]:


# 创建指定值矩阵
npfull = np.full((3, 5), 666)
print(npfull)


# In[15]:


# 也可以指明具体
npfull = np.full(shape=(5,5), fill_value=555)
print(npfull)
# 注明参数可以反转
npfull1 = np.full(fill_value=55.5, shape=(5,5))
print(npfull1)


# ### arange
# range() 步长不能为小数 range(0,20,2)  
# arange()步长可以为小数 np.arange(0,1,0.2)

# In[16]:


[i for i in range(0,20,2)]


# In[17]:


[i for i in np.arange(0,1,0.2)]


# ### linspace
# np.linspace(start, end, len) 其中包括start和end点平均截成len段,即前闭后闭  
# 

# In[18]:


[np.linspace(0, 20, 11)]


# ### random
# 生成随机数,前闭后开,第三个参数为生成个数  
# np.random.randint(4,8,size=10) 更加清楚明了  
# 设置随机种子,随机数生成相同

# In[19]:


nprandom = np.random.randint(0, 10, 10)
nprandom1 = np.random.randint(4,8,size=10)
print(nprandom)
print(nprandom1)


# In[20]:


# 设置随机种子,随机数生成相同
nprandom = np.random.seed(123)
nprandom = np.random.rand(10)
print(nprandom)
nprandom11= np.random.rand(10)
print(nprandom11)


# In[21]:


# 生成符合正态分布的随机数,均值为0,方差为1
np.random.normal()
# 可以指定均值方差,均值为10方差为100
np.random.normal(10,100)
# 生成均值为0方差为1的随机元组(5*5)
np.random.normal(0, 1, (5, 5))


# In[ ]:





# In[22]:


120+210+210+150+90+150+30+30+150+210+30+30+30+30+240+210+60
1980/30
1980+1890+1980


常用方法 创建数组

  • np.arange(start,end, 步长) 创建一个连续数组
  • np.ones(shape, dtype=数据类型) 创建一个全为1的数组
  • np.zeros(shape, dtype) 创建全0数组
  • np.eye(shape) 创建单位矩阵
  • np.linspace(start, stop, num=数字个数) 创建一个等差数列(不是前闭后开,包括stop)
  • np.logspace(start, stop,num=数字个数, base=倍数) 创建一个等比数列,stop表示base的stop次方

np.asarray() 浅复制一个数组

数组运算

  • 切片a[0:3],二维数组切片 a[0:2,1:3],取第一列数组 a[:, 0]
  • 改变数组形状:np.reshape(shape)返回一个新数组原数组不改变、np.resize(shape) 直接改变原数组。reshape(-1,2) 表示2列 行数根据数组情况
  • numpy.sum(arr,axios=0) 计算数组和,传入axis计算不同维度数组和,0表示行,1表示列,2表示三维
  • numpy.prod() 计算所有元素的乘积
  • numpy.diff() 计算相邻元素的差
  • nuimpy.sqrt() 计算各元素的平方根
  • numpy,exp() 计算各元素的指数
  • numpy.abs() 取各元素的绝对值
  • np.stack(arr1, arr2, axis=) 数组堆叠,将两个一维数组堆叠为二维数组,axis指定堆叠方向

矩阵和随机数

  • 矩阵运算-矩阵相乘 arr1*arr2 (直接用 * )
  • 矩阵转置 arr.T
  • 矩阵求逆 arr.I
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值