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)
Posted on Jan 28, 2020