numpy 方法使用

import numpy as np

目录

#创建一维数组

#创建二维数组

基本属性维度的属性,几行几列,数据类型,个数

数据类型转换

数组运算

切片和索引

布尔值索引

筛选出大于0的数和赋值

对数组的处理

1.转置

2.排序

3.数组的添加

4.数组的删除

5.重复数据与去重

6.数组的堆叠

(1)堆叠

(2)拆分

常用的统计函数

将条件逻辑表述为数组运算


#创建一维数组

list1=[1,2,3]  #传入list
arr1=np.array(list1) #转换为数组
print(arr1,type(arr1))

arr2=np.arange(0,10,2)  #自动生成数组,开始值,结束值,步长
print(arr2)

arr3=np.linspace(2,3,num=5) #在两个值中间取均匀的n个值
print(arr3)

#创建二维数组

list2=[[1,2],[3,4],[5,6]]
arr1=np.array(list2)
print(arr1,type(arr1))

list3=[(1,2),(3,4),(5,6)]
arr2=np.array(list3)
print(arr2,type(arr2))

arr3=np.array([[1.8,2,3],[4,5,6]],dtype=float)  #dtype 元素的类型
print(arr3,type(arr3))

arr4=np.array([[1,2,3],[4,5]])
print(arr4)

a=np.zeros((3,4))   #全0
print(a)
b=np.ones((4,5))   #全1
print(b)

print(np.empty((3,4)))
np.empty([2,6])          #创建空数组

基本属性

arr=np.array([[1,2,3],[4,5,6]])
查看维度的属性
查看几行几列
查看数据类型
查看个数
print(arr.ndim)               #查看维度的属性
print(arr.shape)              #查看几行几列
print(arr.dtype)              #里面的数据类型
print(arr.size)               #个数

数据类型转换

arr1=np.arange(10,dtype=float)
arr2=arr1.astype(np.int32)

数组运算

arr=np.array([[1,2,3],[4,5,6]])
print(arr+arr)
print(arr-arr)
print(arr*arr)
print(arr/arr)
print(/arr)   #广播

切片和索引

ar=np.arange(1,21)
print(ar)
print(ar[3])
print(ar[3:8])
print(ar[3:8:2])
ar1=np.arange(16).reshape(4,4)
print(ar1)
print(ar1[1,1])
print(ar1[1:3,1:3])   #逗号前面是行。后面是列
print(ar1[1:3])
print(ar1[:,1:3])

布尔值索引

te=np.array(['rose','hh','jack','rpbot','tom'])
print(te)
data=np.random.randn(5,4)
print(data)
print(te=='tom')
print(data[te=='tom'])

筛选出大于0的数和赋值

print(data<0)
print(data[data<0])
data[data<0]=0

对数组的处理

1.转置

arr=np.arange(15).reshape(3,5)   #生成一个3行5列的二维数组
print(arr)
行和列转换
print(arr.T)
轴对换(中间轴兑换数据)
print(np.transpose(arr))
三维数组的转换
arr2=np.arange(16).reshape((2,2,4))
print(arr2)
print(arr2.transpose((1,0,2)))

2.排序

arr=np.array([2,3,231,22,11,44,55])
arr.sort()     #一维数组直接排序
print(arr)

arr=np.array([[2,3,9],[1,4,21],[3,22,13]])
print(arr)
arr.sort(axis=0)     #二维数组排序按指定方向排序,列轴方向排
print(arr)
arr.sort(axis=1)     #二维数组排序按指定方向排序,行轴方向排
print(arr)

3.数组的添加

arr=np.array([[2,3,9],[1,4,21]])
print(arr)
arr1=np.append(arr,[[7,8,9]],axis=0) #指定0是添加到后面会多一列,不指定就会降维
print(arr1)
arr2=np.append(arr,[[1,2,3],[2,3,4]],axis=1) #指定1是添加到列里会多几行,不指定就会降维
print(arr2)
arr3=np.insert(arr,1,[1,2,3],axis=0)   #指定位置插队进去
print(arr3)
arr4=np.insert(arr,2,44,axis=0)    #广播机制
print(arr4)

4.数组的删除

 arr=np.arange(12).reshape(3,4)
 print(arr)
 print(np.delete(arr,9))   #直接删除会降维
 print(np.delete(arr,2,axis=0)) #按行删除
 print(np.delete(arr,2,axis=1)) #按列删除

5.重复数据与去重

arr=np.array([1,2,3,4,4,5,6,7,7,8,1,2])
print(np.unique(arr))   #去重
#数据的拼接
a=np.array([[1,3],[2,3]])
b=np.array([[4,3],[4,8]])
print(np.concatenate((a,b),axis=0)) #按行拼接
print(np.concatenate((a,b),axis=1)) #按列拼接

6.数组的堆叠

(1)堆叠
a=np.array([[1,3],[2,3]])
b=np.array([[4,3],[4,8]])
print(np.hstack((a,b)))  #水平堆叠
print(np.vstack((a,b)))  #垂直堆叠
print(np.stack((a,b),axis=0))  #指定0轴方向进行堆叠===升维
(2)拆分
arr=np.arange(16).reshape(4,4)
print(arr)
print(np.hsplit(arr,2))  #垂直拆分拆列
print(np.vsplit(arr,2))  #水平拆分拆行
print(np.split(arr,2,axis=1))  #指定方向拆分

常用的统计函数

a=np.array([[1],[2],[3]])
b=np.array([['a'],['b'],['c']])
a=np.nan
b=np.inf  一个数字除以0,(python中直接会报错,numpy中是一个inf或者-inf)
print(a,b)
t=np.arange(36,dtype=float).reshape(4,9)
print('统计非零的个数',np.count_nonzero(t))
print('整个数组求和',np.sum(t))
print('0轴方向上求和',np.sum(t,axis=0))
print('平均值',np.mean(t))
print('标准差',np.std(t))
print('中位数',np.count_nonzero(t))
print('次方函数',np.power(2,3))
print('底数什么的不是好董',np.log(10))

将条件逻辑表述为数组运算

arr1=np.array([1,3,4,5,])
arr2=np.array([2,4,6,8,])
arr3=np.array([True,False,True,False,])
print(list(zip(arr1, arr2, arr3)))
#三元表达式 为真的结果 if条件 else 为假的结果
result=[(x if c else y) for x,y,c in zip(arr1,arr2,arr3)]
print(result)
#np.where (条件,x,y)  满足条件输入x ,不满足输出为 y
arr3=np.array([[1,3],[5,7]])
arr4=np.array([[2,4],[6,8]])
print(np.where([[True, False], [True, False]], arr3, arr4))



#没有x y 时,则输出满足条件元素的下标
w=np.array([99,66,55,88])
print(np.where(w > 60))
#把满足条件的改为190,不满足的改为-190
print(np.where(w > 60,190,-190))
#把满足条件的改为190,不满足的保持原来的数
print(np.where(w > 60,190,w))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值