关于pandas的DataFrame、contact、values、shape、reshape的理解 以及与numpy 关于shape 的区分

关于pandas的DataFrame、contact、values、shape、reshape的理解

1)创建Sequential类的实例,并打印

length = 10
sequence = [i/float(length) for i in range(length)]
print(sequence)

输出:

[0.0, 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]

2)上面的输出注释掉,继续

#DataFrame 将序列转换为竖直排列的格式(并加上序号)   DataFrame  https://www.jianshu.com/p/8024ceef4fe2
df = DataFrame(sequence)
print(df)
     0
0  0.0
1  0.1
2  0.2
3  0.3
4  0.4
5  0.5
6  0.6
7  0.7
8  0.8
9  0.9

3)上面的输出注释掉,继续

# concat将多个df序列合并成一个集合,shift(1)将当前列向下移动,shift(-1)向上移动
df = concat([df.shift(1), df], axis=1)print(df) 
     0    0
0  NaN  0.0
1  0.0  0.1
2  0.1  0.2
3  0.2  0.3
4  0.3  0.4
5  0.4  0.5
6  0.5  0.6
7  0.6  0.7
8  0.7  0.8
9  0.8  0.9

4)上面的输出注释掉,继续

df.dropna(inplace=True)print(df) #dropna 删除有na值的行
     0    0
1  0.0  0.1
2  0.1  0.2
3  0.2  0.3
4  0.3  0.4
5  0.4  0.5
6  0.5  0.6
7  0.6  0.7
8  0.7  0.8
9  0.8  0.9

5)上面的输出注释掉,继续

values = df.values  # 只打印values
print(values)
[[0.  0.1]
 [0.1 0.2]
 [0.2 0.3]
 [0.3 0.4]
 [0.4 0.5]
 [0.5 0.6]
 [0.6 0.7]
 [0.7 0.8]
 [0.8 0.9]]
  1. 上面的输出注释掉,继续

先看官方关于shape的定义

pandas.DataFrame.shape

Return a tuple representing the dimensionality of the DataFrame.

#返回一个表示DataFrame维数的元组。

df = DataFrame({'col1':[1, 2],  'col2':[3, 4], 'col3':[1, 2,]})
print(df.shape)
(2, 3)  #shape(X,Y)  X为行数(一个方括号内的元素个数);Y为列数

要求每个元素是[ ]类型的,不然就会显示未下面的shape 1 ,

X, y = values[:, 0], values[:, 1] #按照0 ,1 切割,分别给X,y
print(X)
print(X.shape)
print(y)
print(y.shape)
[0.  0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8] #表示只有一列 
(9,) #shape 1 表示有9行,但是每一行元素的shape不注明 
[0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
(9,) #shape

7)上面的输出注释掉,继续

X = X.reshape(len(X), 1, 1)
print(X.shape)
print(X)
(9, 1, 1) #shape  例如下面的,最外面是一个方括号,表示只有一列
[[[0. ]]

 [[0.1]]

 [[0.2]]

 [[0.3]]

 [[0.4]]

 [[0.5]]

 [[0.6]]

 [[0.7]]

 [[0.8]]]

补充:何为列数?

{[col1],[col2],…[coln]} 表示n 列,一个方括号为一列;

col1 里面有多少元素,则表示多少行。例如上面的

(9, 1, 1) #shape

表示有9行,每行的元素shape为(1,1)

另外,应该注意padas 与numpy中shape方法的区别,例如

from pandas import DataFrame
import numpy as np
df= DataFrame({'col1':[1, 2],  'col2':[3, 4], 'col3':[1, 2]})
print(df.shape) #  (2, 3)

a = np.array([[1, 2], [2, 3], [3, 4]] )
print(a.shape) #(3, 2)

输出完全相反:

(2, 3)
(3, 2)

你可能感兴趣的:(神经网络)