任务一numpy学习

本文介绍了numpy库的矩阵垂直拆分、水平拆分、深度拆分方法,以及基本的加减运算、行操作、矩阵删除与插入、尾部添加。还涵盖了随机数选择、argmax函数应用、星号操作、拉平技巧、prod函数、矩阵修改技巧和copy问题。此外,还讲解了numpy的pad、paddd、rand、randn、randint以及Python断言和pad函数等知识点。
摘要由CSDN通过智能技术生成

import numpy as np

c = np.arange(1,13).reshape(6,2)
"""
#垂直拆分:numpy.vsplit(数组,份数)->(数组片段)
c = np.arange(1,13).reshape(6,2)
print(np.vsplit(c,3))
"""
#水平拆分:numpy.hsplit(数组,份数)->(数组片段)
"""

d =c.T
print(np.hsplit(d, 3))
"""
#numpy.dsplit(数组,份数)->(数组片段)
"""

a = np.array((1,2,3))
b = np.array((2,3,4))
e = np.dstack((a,b))
print(np.dsplit(e,2))
"""

#numpy基本加减和取行操作
"""
a = np.array([1,1,1,1])
b = np.array([[1],[1],[1],[1]])
print(a+b)
print("")
W = np.array([[1,1,1],[2,2,2]])
print(W[:,1])
print("")
print(W[1])
print("")
W[:,1] = np.array([5,5])
print(W)
"""
#矩阵删除、插入、尾部添加操作(delete,insert,append)
"""
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
p1 = np.delete(matrix, 1, 0) # 第0维度(行)第1行被删除(初始行为0行)
print(">>>>p1>>>>\n",p1)
p2 = np.delete(matrix, 1, 1) # 第1维度(列)第1行被删除
print(">>>>p2>>>>\n",p2)
p3 = np.delete(matrix, 1) # 拉平后删除第1个元素(初始为第0个)
print(">>>>p3>>>>\n",p3)
p4 = np.delete(matrix, [0,1], 1) # 第1维度(列)第0、1行被删除
print(">>>>p3>>>>\n",p4)
"""
#insert()函数
"""
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
q1 = np.insert(matrix, 1, [1,1,1,1], 0) # 第0维度(行)第1行添加[1,1,1,1]
print(">>>>q1>>>>\n",q1)
"""
#append()函shu
"""
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
m1 = np.append(matrix,[[1,1,1,1]])
print(m1)
"""
#np.random.choice(a, size, replace, p)
"""
a1 = np.random.choice(7,5) # 从0~7中随机选择5个数组成一维数组
print(a1)
a2 = np.random.choice([0,1,2,3,4,5,6],5) # 从给定list中随机选择5个数组成一维数组
print(a2)
a3 = np.random.choice(np.array([0,1,2,3,4,5,6]),5) # 将list换成array数组依然可以运行,效果一致
print(a3)
a4 = np.random.choice([0,1,2,3,4,5,6],5,replace=False) # 上述均有重复,将replace设置为False,即可按要求没有重复的选取
"""

#np.argmax(a, axis=None, out=None)
"""
a = np.array([[1,1,1],[2,2,2],[0,3,6]])
print(a)
"""
#星号(*)的作用
"""
y1 = np.linspace(-10.0,10.0) # 默认生成50个数据
print(y1)
"""
#拉平操作 ravel()和faltten()及reshape(1,-1)的区别联系(补充[None,:]操作)
"""
x = np.array([[1,2,3],[4,5,6],[1,2,3]])
print(x.flatten())
"""
#np.prod() 计算元素乘积

"""
x = np.array([[1,2,3],[2,3,4]])
print(np.prod(x))
"""
#把矩阵大于或小于N的元素置M的技巧
"""

x = np.array([[1,2,3],[-3,2,4],[5,-2,9]])
y1 = np.maximum(0,x) # 把小于0的元素置0,比改变x的值
print(y1)
x1 = x.copy()

x1[x1 < 0] = 0 # 把小于0的元素置0,改变x1的值\
print(x1)
"""
#numpy中的矩阵copy问题
"""
x = np.array([[1,2,3],[-3,2,4],[5,-2,9]])
x1 = x.copy() # copy(),开辟新地址
x1[x1 > 0] = 0
print(x1)
"""
#np.zeros_like()构造全零矩阵,无需指定大小
"""
x = np.array([[1,2,3],[4,5,6]])
 # 生成一个和x大小相同的全零矩阵
print(np.zeros_like(x))
"""
#random.rand和random.rand和random.randint区别
"""
n = np.random.rand(3,4)
print(n)
"""

#np.random.randn() 生成正太分布矩阵
"""
x = np.random.randn(2,3)
print(x)
"""
#np.randm.randint() 生成离散均匀分布的整数值组成的矩阵
z = np.random.randint(2,9,(2,3))
print(z)
#python 断言 assert
x = "You are right"
print(type(x))
#np.pad()函数进行padding操作
A = np.arange(95,99).reshape(2,2)
print(A)
#np.newaxis 在特定位置增加一个维度
c = np.array([1,2,5,4])
print(c[:,np.newaxis])
#python 广播机制
a = np.array([2,2,3,4,5,5,6,7])
s = slice(0,7,2)
print(s)

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值