【numpy模块】python基础

目录

创建数组

查看数组属性

选取数据元素:索引值和切片

一维数组

二位数组

数组的重置与转换

一维数组

多维数组的重塑

数组的转置

数组的处理

添加数组

删除数组元素

处理数组的缺失值

处理数组的重复值——unique()函数

拼接数组

拆分数组

数组的运算

数组的四则运算

元素统计运算

numpy模块

创建数组 

import numpy as np
'''创建序列型的对象,任意维度数组'''
x=np.array([1,2,3,4])
y=np.array([[1,2,3],[4,5,6],[7,8,9]])
print(x)
print(y)
print("________________________________________________________________")
'''等差数列'''
a=np.arange(1,20,4)  #初始值为1,结束值为20(结果不含值),步长为4
b=np.arange(1,20) #若省略4,这步长默认为1
print(a)
print(b)
print("________________________________________________________________")
'''创建随机数组  利用numpy中的子模块random中的元素'''
#1 、 rand() 数组中的每个元素都在【0.1)区间内的随机数
c=np.random.rand(3)  #3代表创建3个元素
d=np.random.rand(2,3)  # 生成一个两行三列的二维数组,其元素在【0,1)自间
print(d)
print(c)
print("________________________________________________________________")
# 2、randn()函数 元素符合标准正态分布(均值0,标准差1)
e=np.random.randn(3)
f=np.random.randn(3,3)
print(e)
print(f)
print("________________________________________________________________")
# 3. randint() 创建在指定范围内的随机整数
g=np.random.randint(1,5,10) #元素在【1,5)的十个元素
h=np.random.randint(1,10,(4,2)) #创建一个4行2列二维数组,数组元素为【1,10)区间内的随机整数
print(g)
print(h)
print("________________________________________________________________")

查看数组属性

数组属性:主要指数组的行列数,元素个数,元素的数据类型,数组的维数

import numpy as np
y=np.array([[1,2],[3,4],[5,6]]) #3行2列
print(y)
print("________________________________________________________________")
'''shape查看数组的行,列数'''
print(y.shape)
print("行数为:",y.shape[0]) # 表示查看数组行数
print("列数为:",y.shape[1]) # 表示查看数组列数
print("________________________________________________________________")
'''size查看元素个数'''
print("元素个数为:",y.size)
print("________________________________________________________________")
'''dtype 和astype查看和转换元素的数据类型'''
a=np.array([[1.3,2,3.6,4],[5,6,7.8,8]])
print(a.dtype)
a1=a.astype(int) #float转int
print(a1)
print(a1.dtype)
print("________________________________________________________________")
'''ndim 查看数组维数'''
print(y.ndim) #表示几维数组



 

选取数据元素:索引值和切片

一维数组

import numpy as np
'''选取单个元素'''
arr=np.array([12,2,40,64,56,6,57,18,95,17,21,12])
#从头开始0 ,从尾开始用-1
print(arr[0])
print(arr[-2])
'''选取连续的元素'''
#不包含最后一个元素
print(arr[1:6])  #索引值从1(第2个元素)到 索引值从6(第7个元素)
print(arr[3:-2])  #索引值从3(第4个元素)到 索引值从-2(倒数第2个元素)
'''选取不连续的元素————切片'''
print(arr[1:5:2])  #1(第二个元素)代表起始位置,5代表结束位置,2代表步长 若2没写,则默认为1

二位数组

import numpy as np
'''选取单个元素'''
arr=np.array([[1,2,3],[4,5,6],[7,8,9],[10,11,12]])
print(arr[1,2])  #选取了第2行第3列的元素
'''选取单行或单列的元素'''
print(arr[2])  #表示第3行的一整行的元素
print(arr[:,1]) #表示第2列的一整列的元素
'''选取某些行或某些列的元素'''
print(arr[1:3]) #第一行到第4行元素
print(arr[:,1:3])  #第2列到第4列。不包括第4列
'''选取行列元素'''
print(arr[1:2,1:3])

注意:行列之间用逗号隔开,从什么到什么用冒号

数组的重置与转换

数组的重置:将某个维度的数组转换为另一个维度的数组

数组的转换:转换是重置的一个特殊情况——将行列重置,元素不变

一维数组

Reshape()函数可以在不改变数组元素的内容和个数的情况下重塑数组的形状

import numpy as np
arr=np.array([1,2,3,4,5,6,7,8])
a=arr.reshape(2,4) #将arr转换成2行4列的二位数组
print(a)

多维数组的重塑

Reshape()函数还可以更改多维数组的形状

i

import numpy as np
'''多维数组在维度不变的情况下,改变行列'''
arr=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
a=arr.reshape(4,3)  #创建一个4行3列数组
print(a)
'''多维数组转变为一维数组 , 利用flatten()和 ravel()'''
print(arr.flatten())
print(arr.ravel())

数组的转置

i

mport numpy as np
arr=np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
print(arr)
print("______________________________________")
'''T属性'''
print(arr.T) #数组的行变为列
print("______________________________________")
'''通过transpose()函数'''
arr1=np.transpose(arr) #通过索引值
print(arr1)

数组的处理

添加数组

import numpy as np
arr=np.array([[1,2,3],[4,5,6]])
'''append()函数'''
arr1=np.append(arr,[[7,8,9]]) #二维数组变成一维数组
arr2=np.append(arr,[[7,8,9]],axis=0)  #axis=0 代表行数加,列数不变
arr3=np.append(arr,[[7,8],[9,10]],axis=1)   #axis=1表示添加在列上,行数不变
print(arr1)
print("______________________________________")
print(arr2)
print("______________________________________")
import numpy as np
arr=np.array([[1,2],[3,4],[5,6]])
'''insert()函数'''
arr1=np.insert(arr,1,[7,8])  #1(第二个元素之前)代表插入元素的位置
arr2=np.insert(arr,1,[7,8],axis=0)  #行
arr3=np.insert(arr,1,[7,8,9],axis=1)  #列
print(arr1)  #变一维
print("_______________________________")
print(arr2)
print("_______________________________")
print(arr3)

删除数组元素

import numpy as np
arr=np.array([[1,2,3],[4,5,6],[7,8,9]])
'''delete()函数'''
arr1=np.delete(arr,2)
arr2=np.delete(arr,2,axis=0)  #行
arr3=np.delete(arr,2,axis=1)  #列
print(arr1)  #先展开arr为一维,再在2(第三位元素)位置进行删除
print("_______________________________")
print(arr2)
print("_______________________________")
print(arr3)

处理数组的缺失值

数组的缺失值处理可以分为两步:第一步,找出缺失值的位置;第二步,用指定的值对缺失值进行填充

第一步,找出缺失值的位置

import numpy as np
arr=np.array([1,2,3,4,5,6,np.nan,8,9])  #np.nan表示缺失值
print(arr)
#isnan()函数可以标记数组中缺失值的位置
print(np.isnan(arr))

False代表该位置有元素,true代表此处有缺失值

第二步,用指定的值对缺失值进行填充——依旧使用isnan()函数

arr[np.isnan(arr)]=0
print(arr)

处理数组的重复值——unique()函数

import numpy as np
arr=np.array([8,4,2,3,5,5,2,5,5,6,8,8,9])
arr1=np.unique(arr) #去重处理
arr1,arr2=np.unique(arr,return_counts=True)
print(arr1)
print(arr2)

[2 3 4 5 6 8 9]是arr1=np.unique(arr) #去重处理 结果

[2 1 1 4 1 3 1] 是去重后数组arr1中的每个元素在元素组arr中出现的次数。

拼接数组

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

注意:带合并的几个数组的维度必须相同,一维数组的形状可以不一样,但是多维数组的形状必须相同(行列相同)。

使用——concatenate()函数在列上增加=vstack()函数

arr3=np.concatenate((arr1,arr2),axis=0)

arr4=np.vstack((arr1,arr2))

结果:

使用——concatenate()函数在行上增加=hstack()函数

arr4=np.concatenate((arr1,arr2),axis=1)

arr3=np.hstack((arr1,arr2))

结果:

拆分数组

一维数组

import numpy as np
arr=np.array([1,2,3,4,5,6,7,8,9,10,11,12])
'''split()——均分'''
arr1=np.split(arr,2) #将arr数组拆分成两个大小相同的数组
'''split()——根据索引值位置拆分'''
arr2=np.split(arr,[2,6])  #[2,6]表示在索引值2(第三个元素)和索引值6(第七个元素)的位置进行拆分。
print(arr1)
print(arr2)

多维数组

import numpy as np
arr=np.array([[1,2,3,4,],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
'''hsplit()——横向拆分为多个数组'''
arr1=np.hsplit(arr,2)
'''vsplit()——纵向拆分'''
arr2=np.vsplit(arr,2)
print(arr1)
print("_______________________________")
print(arr2)

数组的运算

数组的四则运算

import numpy as np
arr1=np.array([[1,2,3,4,],[5,6,7,8]])
arr2=np.array([[9,10,11,12],[13,14,15,16]])
arr3=arr1+arr2
arr4=arr1*arr2
arr5=arr1+5
arr6=arr1*10

元素统计运算

求和——sum()

import numpy as np
arr=np.array([[1,2,3,4,],[5,6,7,8],[9,10,11,12]])
arr1=arr.sum() #全加
arr2=arr.sum(axis=0) #列加
arr3=arr.sum(axis=1) #行加

求均值——mean()

import numpy as np
arr=np.array([[1,2,3,4,],[5,6,7,8],[9,10,11,12]])
arr1=arr.mean() #全加
arr2=arr.mean(axis=0) #列加
arr3=arr.mean(axis=1) #行加

        

import numpy as np
arr=np.array([[1,2,3,4,],[5,6,7,8],[9,10,11,12]])
arr1=arr.max() #所有最大
arr2=arr.max(axis=0) #每一列的最大值
arr3=arr.max(axis=1) #每一行的最大值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值