numpy有几种方法可以创建array数据结构。
第一种是转换,把python的list,tuple,或者pandas的series或者dataframe转化为array.
# 转换成array的几种方法 import numpy as np import pandas as pd array_from_list=np.array([1,2,3,4,5,6]) print("array_from_list",array_from_list) array_from_tuple=np.array((1,2,3,4,5,6)) print("array_from_tuple",array_from_tuple) s=pd.Series([1,2,3,4,5,6]) array_from_series=np.array(s) print("array_from_series",array_from_series) ''' array_from_list [1 2 3 4 5 6] array_from_tuple [1 2 3 4 5 6] array_from_series [1 2 3 4 5 6] '''
# 关键是,同样的创建的这几个数字,他们并不相等 # 首先,用is判断 print('array_from_list is array_from_tuple',array_from_list is array_from_tuple) # 可以看出,两者并不相等,用id分别判断他们的地址 print("id(array_from_list)",id(array_from_list)) print("id(array_from_tuple)",id(array_from_tuple)) # 可以比较明显看出来,他们两个的储存地址是不一致的 print("id(1)",id(1)) print("id(1)",id(1)) a=None b=None print("id(a)",id(a)) print("id(b)",id(b)) print("id(None)",id(None)) print("a is b",a is b) # 从这几个关系判断中,可以看出,只有内存地址是一样的变量,用is判断,两者相等才会相等.所以,尽管三个array的内容一样,但是他们并不相等 ''' array_from_list is array_from_tuple False id(array_from_list) 2089190283584 id(array_from_tuple) 2089190284544 id(1) 140734861668096 id(1) 140734861668096 id(a) 140734861199376 id(b) 140734861199376 id(None) 140734861199376 a is b True '''
# 从dataframe转化成numpy df=pd.DataFrame() df['a']=[1,2,3] df['b']=[4,5,6] print() print(df) print() array_from_df=np.array(df,order='F') print() print(array_from_df) print() array_from_two_list=np.array([[1,2,3],[4,5,6]]) print() print(array_from_two_list) print() ''' a b 0 1 4 1 2 5 2 3 6 [[1 4] [2 5] [3 6]] [[1 2 3] [4 5 6]] '''