Numpy1·(数组的生成、判断、转换、索引(取出符合条件的数值)、切片)


导入
import numpy as np


数组生成

1·直接生成  使用字典,列表,元组及其嵌套
a=np.array([1,2,3,4],dtype=np.float64)   #可以指定类型,也可以不指定,不指定就生成给定的数据
b=np.array([[1,2,3,4],[5,6,7,8]])

2·使用函数
np.arange(n)        类似range()函数,返回ndarray类型,元素从0到n‐1
np.ones(shape)      根据shape生成一个全1数组,shape是元组类型
np.zeros(shape)     根据shape生成一个全0数组,shape是元组类型
np.full(shape,val)  根据shape生成一个数组,每个元素值都是valnp.eye(n) 创建一个正方的n*n单位矩阵,对角线为1,其余为0
np.ones_like(a)     根据数组a的形状生成一个全1数组
np.zeros_like(a)    根据数组a的形状生成一个全0数组
np.full_like(a,val) 根据数组a的形状生成一个数组,每个元素值都是val
np.linspace()       根据起止数据等间距地填充数据,形成数组
np.concatenate()    将两个或多个数组合并成一个新的数组


数组判断

数组大小
np.size(b)----------->  8
形状
np.shape(b)---------->(2,4)
b.shape
维度
b.ndim--------------->2维
数据类型
b.dtype ------------->int32(32位长度的整数,取值:[2**31,2**31)‐1])
元素大小(字节)
b.itemsize----------->4



转换
高维度便于展示,不利于计算,可以使用函数进行转换后在计算

.reshape(shape) 不改变数组元素,返回一个shape形状的数组,原数组不变(())括号内传递元组

一维数组的转换
print(np.shape(cat))----->(722, 900, 3)--->cat是一张图片
cat2=cat.reshape((722*900*3))
cat3=cat.reshape((-1))#传递进去负数也可以使得数组变为一维数组

.resize(shape).reshape()功能一致,但修改原数组
.swapaxes(ax1,ax2) 将数组n个维度中两个维度进行调换
.flatten() 对数组进行降维,返回折叠后的一维数组,原数组不变
数据类型转换
c=b.astype(np.float16)---->(new_type)
数组的维度变换
a= np.ones((2,3,4), dtype=np.int32)
数组向列表的转换
ls= a.tolist()
数字字符串的转换
d=np.array(['12'])
e=d.astype(np.float64)



索引

一维
a=np.array([1,2,3,47,5])
print(a[2])----->3
a[2]------>下标为2的元素

argwhere()返回索引下标
取出符合条件的数值
index=np.argwhere(cat1<10)
cat1[index]

多维
c=np.arange(24).reshape((2,3,4))
print(c[1,2,2])------------>22
c[1,2,2]------->一维,第二行,第二列(先行后列)



切片

一维
print(a[1:3:2])------------------>[2]
a[1:3:2]--->元素下标1到下标3,步长为2
多维
print(c[:,1:3,:])
c[:,1:3,:]------>行全选,列选13,步长为0

np.split()
x = np.arange(24).reshape(4,6)
y=np.split(x,2,axis=1)--->竖着切x,切两刀
默认横着切,axis=1竖着切

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值