Numpy常用数据结构
1. 数组创建
In [ ]:
# 导入库 import numpy as np
In [ ]:
arr1 = np.array([-9,7,4,3])
In [ ]:
arr1
In [ ]:
arr2 = np.array([-9,7,4,3],dtype =float)# 尝试改变为int或者str
In [ ]:
print(arr2)
In [ ]:
arr3 = np.array([[1,2,3,4],[5,6,7,8],[9,10,11,12]])
In [ ]:
arr3
In [ ]:
# 使用其他函数创建数组 np.arange(0,10,1)
In [ ]:等差
np.linspace(1,10,10)
In [ ]:零矩阵
np.zeros([4,5])
In [ ]:全是一的矩阵
np.ones([2,3])
In [ ]:
arr3 + 1 #矩阵运算
2. 数组方法
In [ ]:
# 查看数组维度 arr3.ndim
In [ ]:几行几列
arr3.shape
In [ ]:里面的元素个数
arr3.size
In [ ]:里面的元素类型
arr3.dtype
In [ ]:
arr3 + 1 #矩阵运算
In [ ]:
arr3 /2
In [ ]:
data2 = ((8.5,6,4.1,2,0.7),(1.5,3,5.4,7.3,9),(3.2,4.5,6,3,9),(11.2,13.4,15.6,17.8,19)) arr2 = np.array(data2)
In [ ]:
arr2
In [ ]:
arr2[2] #访问第三行,可以理解为行索引
In [ ]:
arr2[2,1] #访问第三行,可以理解为行索引
In [ ]:
arr2[:,2:4] #访问第三列
In [ ]:
arr2[1:3] #2行和3行
In [ ]:
arr2[1:,2:] #第2行到最后一行,第3列到最后一列
In [ ]:
arr2[2,1] #访问第三行,第二个元素,第一个是行索引,第二个是列索引
In [ ]:和上面一个效果相同
arr2[2][1] #访问第三行,第二个元素,第一个是行索引,第二个是列索引
3. Numpy常用数据清洗函数
- 排序
- 降序建议用sorted函数
In [ ]:
s = np.array([1,2,3,4,3,1,2,2,4,6,7,2,4,8,4,5])
In [ ]:
np.sort(s)
In [ ]:
sorted(s,reverse =True)#降序
In [ ]:
arr1 = np.array([[0,1,3],[4,2,9],[4,5,9],[1,-3,4]])
In [ ]:
arr1
In [ ]:
np.sort(arr1)
In [ ]:
np.sort(arr1,axis = 0) # 0代表沿着行的方向, 1代表沿着列的方向
arr1 = np.array([[0,1,3],[4,2,9],[4,5,9],[1,-3,4]])对于这里的理解可以理解为矩阵的转制的概念,也就是013 429 459 1-34分别表示列向量所谓行,就是每一个元素里面的第n个,比如这里的0,4,4,1
所谓列,就是一个元素里面的所有数,比如这里的0,1,3
In [ ]:
np.sort(arr1,axis = 1)
- argsort返回的是排完序以后,在原数据中的索引位置
- 返回的是数据中,从小到大的索引值
In [ ]:
s = np.array([1,2,3,4,3,1,2,2,4,6,7,2,4,8,4,5])
In [ ]:
np.argsort(s)
- np.where和np.extract
In [ ]:
np.where(s>3,1,-1)# 满足条件的,赋值为1,不满足的赋值为-1,返回的数据长度和s一样
np.where(s>3,s,-1)# 满足条件的,赋值为本身,不满足的赋值为-1,返回的数据长度和s一样
- np.extract 只会输出满足条件的数据
In [ ]:
筛选
np.extract(s>3,s)# 只输出满足条件的数据
4. Pandas常用数据结构
series序列
In [ ]:
import pandas as pd import numpy as np
In [ ]:
# 构造序列 series1 = pd.Series([2.8,3.01,8.99,8.59,5.18])
In [ ]:index就是索引,name是序列的名字
series2 = pd.Series([2.8,3.01,8.99,8.59,5.18],index = [‘a‘,‘b‘,‘c‘,‘d‘,‘e‘],name =‘这是一个series‘)
In [ ]:
series3 = pd.Series({‘北京‘:2.8,‘上海‘:3.01,‘广东‘:8.99,‘江苏‘:8.59,‘浙江‘:5.18})这个时候中文的地方会变成索引,而后面分别跟者值可以通过series3[0] series3[‘北京‘]得到2.8
可以通过series3[0:3]得到‘北京‘:2.8,‘上海‘:3.01,‘广东‘:8.99。 左闭右开
可以通过series3[‘北京‘:‘江苏‘]得到之间所有的值 左闭右闭
In [ ]:
#series方法 series2.values 输出到是值
In [ ]:
series3.index 输出的是健
dafaframe
In [ ]:列表
# 构造数据框 #数据框其实就是一个二维表结构,是数据分析中,最常用的数据结构 list1 = [[‘张三‘,23,‘男‘],[‘李四‘,27,‘女‘],[‘王二‘,26,‘女‘]]#使用嵌套列表 df1 = pd.DataFrame(list1,columns=[‘姓名‘,‘年龄‘,‘性别‘])
In [ ]:
type(df1)
In [ ]:字典,键就是列标签
df2 = pd.DataFrame({‘姓名‘:[‘张三‘,‘李四‘,‘王二‘],‘年龄‘:[23,27,26],‘性别‘:[‘男‘,‘女‘,‘女‘]}) #使用字典,字典的键被当成列名
In [ ]:
df2
In [ ]:数组
array1 = np.array([[‘张三‘,23,‘男‘],[‘李四‘,27,‘女‘],[‘王二‘, 26,‘女‘]]) #使用numpy df3 = pd.DataFrame(array1,columns=[‘姓名‘,‘年龄‘,‘性别‘],index = [‘a‘,‘b‘,‘c‘] ) 行标签是index,列标签是columns
In [ ]:
#dataframe方法所有的除标签外的值 df2.values
In [ ]:行标签
df2.index
In [ ]:列标签,这个只针对da ta f ra me有用
df2.columns
df2.columns.tolist()转变为列表的格式
In [ ]:数据的类型
df2.dtypes
In [ ]:维度
df2.ndim
In [ ]:多少个元素
df2.size
In [ ]:
df2.shape
原文地址:https://www.cnblogs.com/xingnie/p/12259723.html
时间: 2024-10-29 05:11:47