Numpy笔记----------numpy基本操作2(变形、级联、拆分、数组的拷贝)

1.变形(np.reshape)

import numpy as np
n = np.arange(1,21)
print('n:',n)
print('n的形状:',n.shape)
#变成二维
x = np.reshape(n,(4,5))
print('x:',x)
print('x的形状:',x.shape)
y = n.reshape(5,4)
print('y:',y)
print('y的形状:',y.shape)
#还原为一维
m = y.reshape(20)
print('m:',m)
print('m的形状:',m.shape)
a = y.reshape(-1)
print('a:',a)
print('a的形状:',a.shape)
#使用-1来表示任意剩余维度长度
b = n.reshape(4,-1)
print('b:',b)
print('b的形状:',b.shape)
c = n.reshape(-1,4)
print('c:',c)
print('c的形状:',c.shape)
  • ⚠️注意:变形过后的元素总个数要和原元素总个数一致,例如变形前元素个数有20个,变形为4行5列后元素个数依旧是20,此变形正确;如果变形为4行6列,变形后的元素个数为24,此变形错误,代码会报错;在使用-1变换维度时,不可同时出现两个-1,否则代码会报错。

2.级联(np.concatenate)

  • 参数是列表或者元组
  • 维度必须相同
  • 可以通过axis参数改变级联的方向
import numpy as np
n1 = np.random.randint(0,100,size=(3,5))
n2 = np.random.randint(0,100,size=(3,5))
print('n1:',n1)
print('n2:',n2)
#默认行级联
x = np.concatenate((n1,n2))
print('x:',x)
#通过axis=0,设置为第一个维度(行)级联
y = np.concatenate((n1,n2),axis=0)
print('y:',y)
#通过axis=1,设置为第二个维度(列)级联
z = np.concatenate((n1,n2),axis=1)
print('z:',z)
  • np.hstack(水平级联)与np.vstack(垂直级联)
import numpy as np
n1 = np.random.randint(0,100,size=(3,5))
n2 = np.random.randint(0,100,size=(3,5))
print('n1:',n1)
print('n2:',n2)
#水平级联
x = np.hstack((n1,n2))
print('x:',x)
#垂直级联
y = np.vstack((n1,n2))
print('y:',y)

3.拆分

  • np.split
import numpy as np
n = np.random.randint(0,100,size=(6,4))
print('n:',n)
#默认按行拆分
x = np.split(n,2)
print('x:',x)
#axis=0控制按行拆分
y = np.split(n,2,axis=0)
print('y:',y)
#axis=1控制按列拆分
z = np.split(n,2,axis=1)
print('z:',z)
  • np.vsplit(n,拆分份数/指定拆分位置)
import numpy as np
n = np.random.randint(0,100,size=(6,4))
print('n:',n)
#平均拆分为三份
x = np.vsplit(n,3)
print('x:',x)
#指定位置拆分,第一个数之前的数据为一整块拆出
y = np.vsplit(n,(1,2,4))
print('y:',y)
  • np.hsplit(n,拆分份数/指定拆分位置)
import numpy as np
n = np.random.randint(0,100,size=(6,4))
print('n:',n)
#平均拆分为三份
x = np.hsplit(n,2)
print('x:',x)
#指定位置拆分,第一个数之前的数据为一整块拆出
y = np.vsplit(n,(1,3))
print('y:',y)

4.数组的拷贝(np.copy) -----此拷贝为深拷贝

  • 不使用拷贝的结果
import numpy as np
n = np.arange(10)
print('初始n的数据:',n)
x = n
x[0] = 100
print('x的数据:',x)
print('x改变后n的数据:',n)
  • 使用拷贝的结果
import numpy as np
n = np.arange(10)
print('初始n的数据:',n)
x = n.copy()
x[0] = 100
print('x的数据:',x)
print('x改变后n的数据:',n)

知识点为听课总结笔记,课程为B站“千锋教育NumPy教程,保姆级基础入门Python数据分析”:017_NumPy_ndarray常用属性_哔哩哔哩_bilibili

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值