数据分析--基础numpy(一)

一: numpy 结构设定

1:numpy 结构

numpy array 类型数据类型必须为统一类型

1 import numpy as np
2 number1 =np.array([1,2,3,4])
3 print(number1)
4 number1.dtype

image.png

二:numpy 索引取值及切片

1 索引取值

1 demonumber =np.array([[1,2,3],[4,5,6],[7,8,9]])
2 print(demonumber)
3 #取数字6
4 print(demonumber[1,2])

取数字6

因为是数组  

如果取所有行 用 [:,2]    ":" 代表所有

取横坐标 第二行   索引1

  纵坐标 取第三列   索引2

image.png

2 索引切片

1> 一维切片

顾头不顾腚切片方式

demo4 =np.array([1,2,3,4,5])
print(demo4)
#取 2,3,4
print(demo4[1:4])

image.png

2>多维切片

取 第一二列数据

demonumber =np.array([[1,2,3],[4,5,6],[7,8,9]])
print(demonumber)
print(demonumber[:,0:2])

冒号的含义是所有行   , 0:2 意思是 取索引0到2 列数据

image.png

三:numpy 的数据计算

1:一 维数据计算

如图:让demo5 ==10  打印内容返回布尔类型数据 第0个索引位置为true

demo5 =np.array([10,20,30,40])
demo5==10

image.png

2: 多维数据计算

我们查询多维矩阵中是否存在4 这个int 数值

demonumber =np.array([[1,2,3],[4,5,6],[7,8,9]])
print(demonumber)
demonumber==4

image.png

3: 利用索引数据 反向取出数据值

1>一维数组反向取值

利用数据计算取出索引ture 的位置

在利用索引找到数据值  ,一维数组意义不大, 多维数组 展示

demo11 =np.array([10,20,30,40,50])
demo11_30 =demo11==30 
print(demo11_30)

print(demo11[demo11_30])

image.png

2>:多维数组反向取值

 # 取 第三列数据 判断是否等于11

 #取 11 值所在的矩阵的行

 #取11 值所在矩阵的列

demo12 =np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]])
print(demo12)
demo12_11=(demo12[:,2]==11)     # 取 第三列数据 判断是否等于11
print(demo12_11) 
print(demo12[demo12_11,:])  #取 11 值所在的矩阵的行
print(demo12[:,demo12_11])  

image.png

四: numpy 矩阵基础

1:与或判断

1>: 与   &

我们这里取  等于10又等于5的值

demo1 =np.array([5,10,15,20])
demo1_5_10 =(demo1==10) & (demo1==5)   #取等于10 又等于5的值  
print(demo1_5_10)   #显然结果没有

image.png  显然没有

2>:或  

同理取 等于10 或 等于5的值

import numpy as np
demo1 =np.array([5,10,15,20])
demo1_5_10 =(demo1==10) | (demo1==5))   #取等于10 或等于5的值  
print(demo1_5_10)  

image.png 0 ,1 索引为 ture

2:利用与或反向取值

与反向取值类似. 不过是增加了一个与或操作

demo2 =np.array([[1,2,3],[4,5,6],[7,8,9]])
print(demo2)
demo_5 = ((demo2[:,1] ==5) |(demo2[:,1] ==10) ) 
print(demo_5)
demo2[demo_5,1] =10
print (demo2)
image.png

3 矩阵行求和 /列求和

1: 行列求和

sum(指定行列)  求和

import numpy as np 
demo1 = np.array([[1,2,3],[4,5,6],[7,8,9]])

print (demo1)
print(demo1.sum(axis=1))  # axis =1 按照行求和
print(demo1.sum(axis=0)) #axis=0 按照列求和
 
原文地址:https://www.cnblogs.com/baili-luoyun/p/13029800.html