Deep Learning 9 几种常用数据类型
[TOC]
numpy 数据类型
查看维度数dim
查看各个维度的长度
【前提要知道有多少维度】
print('data_np shape is: ', np.size(data_np, 0), np.size(data_np, 1), np.size(data_np, 2))
需要进行维度变化的
按照维度求最值
【根据axis来选择对应的维度,然后提取最大值】 ==> axis=x
,就是第x的维度提取最值,最后那个维度变成一,dim--
array([[0, 1, 2],
[9, 4, 5],
[6, 7, 8],
[10, 11, 12]])
# 当前维度(4, 3)
print(np.max(a)) #全局最大
8
print(np.max(a,axis=0)) #每列最大 => 第一个维度的长度变为1,所以向量的长度变为3
[6 7 8]
print(np.max(a,axis=1)) #每行最大 => 第二个维度的长度变为1,所以向量的长度变为4
[2 5 8]import plotly.express as px
fig = px.pie(data, name='attr')
类似于Dataframe的value_counts()
实质还是要通过形成dataframe数据结构来进行
pd.Series(numpy_data).value_counts().plot.bar()
numpy 去重
区分于List,都可以去重,其中,list可以通过转换set直接去重,即:但是无法获取重复的元素的索引
ls = list(set(['a', 'b', 'a']))
numpy去重,不仅可以去重,并且可以获得重复的索引
1 首先无论是字符numpy数据还是其他的,先转换为numpy数据
2 然后调用np.unique()
函数
3 最后可以同时返回去重之后,被删去的元素的索引
np_str = np.array(['a', 'b', 'b', 'c', 'a'])
ad_np_str, indices = np.unique(np_str, return_index=True)
numpy数据映射
和list一样,没有map方法
思路:通过np.where函数来进行映射,np.where(condition, true=>, false=>)
- 一维:
y_pred = np.where(np.reshape(y_pred, -1) < 0.5, 0, 1)
- 二维:
y_pred = np.array([np.where(np.reshape(pred, -1) < 0.5, 0, 1) for pred in y_pred])
List 数据类型
是最原始的list <==> 区分于numpy 的arr
DataFrame 数据类型
维度+各维度的长度
data_df.shape
# 输出的格式为(第一个维度的长度, 第二个维度的长度, ……)
维度转换类型
df['Attr'] = df['Attr'].astype(np.datetime64)
一些常规操作:
-
【单个格】None
- fillna
- dropna
-
某个列/某个属性
- 映射
- drop
映射:
df['new_attr'] = df['attr'].apply(lambda x: 1 if x == True else 0)
drop:
注意是赋值
df = df.drop(['old_attr'], axis=1)
相互转换
- dataframe转化成array
df=df.values
- array转化成dataframe
import pandas as pd
df = pd.DataFrame(df)