numpy作业

1.数组拆分

##垂直拆分:numpy.vsplit(数组,份数)->(数组片段)
numpy.anange(起点,终点).reshape()
arange()用于生成一维数组
reshape()将一维数组转换为多维数组

import numpy as np
c = np.arange(1,13).reshape(6,2)
c
array([[ 1,  2],
       [ 3,  4],
       [ 5,  6],
       [ 7,  8],
       [ 9, 10],
       [11, 12]])

np.vsplit(数组,份数)

np.vsplit(c,3)
[array([[1, 2],
        [3, 4]]),
 array([[5, 6],
        [7, 8]]),
 array([[ 9, 10],
        [11, 12]])]

##水平拆分:numpy.hsplit(数组,份数)->(数组片段)

d = c.T

d是c的转置

d
array([[ 1,  3,  5,  7,  9, 11],
       [ 2,  4,  6,  8, 10, 12]])
np.hsplit(d,3)
[array([[1, 3],
        [2, 4]]),
 array([[5, 7],
        [6, 8]]),
 array([[ 9, 11],
        [10, 12]])]

numpy.dsplit(数组,份数)->(数组片段)

a = np.array([[1],[2],[3]])
b = np.array([[4],[5],[6]])
a
array([[1],
       [2],
       [3]])
b
array([[4],
       [5],
       [6]])
e=np.dstack((a,b))
e
array([[[1, 4]],

       [[2, 5]],

       [[3, 6]]])
np.dsplit(e,2)
[array([[[1]],
 
        [[2]],
 
        [[3]]]),
 array([[[4]],
 
        [[5]],
 
        [[6]]])]

numpy基本加减和取行操作

import numpy as numpy
a=np.array([1,1,1,1])
b=np.array([[1],[1],[1],[1]])
a+b#python的广播机制
array([[2, 2, 2, 2],
       [2, 2, 2, 2],
       [2, 2, 2, 2],
       [2, 2, 2, 2]])
c=np.array([1,1,1,1])
c
array([1, 1, 1, 1])
c+b
array([[2, 2, 2, 2],
       [2, 2, 2, 2],
       [2, 2, 2, 2],
       [2, 2, 2, 2]])
W=np.array([[1,1,1],[2,2,2]])
W
array([[1, 1, 1],
       [2, 2, 2]])
W[0]#取得是W第零行,返回的也是一维数组
array([1, 1, 1])
W[1]
array([2, 2, 2])
W[:,1]#W[:,1]虽然取得是W的第一列,但是返回的确实一维数组
array([1, 2])
W[:,1]=np.array([5,5])
W    # 这里用array[5,5]这样的一维数组直接可以把W矩阵的第1列替换(维度符合即可)
array([[1, 5, 1],
       [2, 5, 2]])

矩阵删除、插入、尾部添加操作(delete,insert,append)

numpy矩阵操作主要有delete()、insert()、append()等函数,分别执行删除、插入和添加的操作,注意append可以看为insert函数的特殊情况,即在尾部补充可以看为插入最后一行或列,这在后文会举例说明。

delete(函数)

numpy.delete(arr,obj,axis=None)

axis 表明哪个维度的向量应该被移除
axis 如果为None,则需要先将矩阵拉平,在删去第obj的元素
obj 表明axis维度的哪一行(或列)应该被移除。

import numpy as np
matrix = [
[1,2,3,4],
[5,6,7,8],
[9,10,11,12]
]
p1 = np.delete(matrix,1,0)# 第0维度(行)第1行被删除(初始行为0行)
print(p1)
[[ 1  2  3  4]
 [ 9 10 11 12]]
p2 = np.delete(matrix, 1, 1) # 第1维度(列)第1行被删除
print(p2)
[[ 1  3  4]
 [ 5  7  8]
 [ 9 11 12]]
p3 = np.delete(matrix, 1) # 拉平后删除第1个元素(初始为第0个)
print(p3)
[ 1  3  4  5  6  7  8  9 10 11 12]
p4 = np.delete(matrix,[0,1],1)
print(p4)
[[ 3  4]
 [ 7  8]
 [11 12]]

insert()函数

numpy.insert(arr,obj,value,axis=None)

#value 为插入的数值
#arr 为目标向量
#obj 为目标向量的axis维度的目标位置
#axis 为想要插入的维

import numpy as np
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(p1)
[[ 1  2  3  4]
 [ 9 10 11 12]]
q2 = np.insert(matrix, 0, [1,1,1], 1) # 第1维度(列)第0列添加1,1,1
print(q2)
[[ 1  1  2  3  4]
 [ 1  5  6  7  8]
 [ 1  9 10 11 12]]
q3 = np.insert(matrix, 3, [1,1,1,
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值