这几个我一直都傻傻分不清,今天总算有了些许眉目。
list和tuple其实比较好讲,前者能更改后者不能更改;至于array,就是它翻译成的数组的意思,因为是数组才会有维度(好像是废话)。主要发现好玩的点在转换的时候,for example:
x = [1,2,3],type(x)是list没毛病,然后 a = np.array(x) 结果 a 是array([1, 2, 3]),a.shape是(3,);
y = (1,2,3),type(x)是tuple,然后 b = np.array(y) 结果 b 也是array([1, 2, 3]),b.shape也是(3,);
但是呢,z = [[1,2,3]],type(z)依然是list,然后 c = np.array(z) 结果 c 是array([[1, 2, 3]]),c.shape就是(1, 3);
w = ((1,2,3)),type(w)依然是tuple,d = np.array(w) 结果 d 是array([1, 2, 3]),d.shape是(3,);
v = ([1,2,3]), type(v)是list,e = np.array(v) 结果 e 是array([1, 2, 3]),e.shape是(3,);
u = [(1,2,3)], type(u)依然是list ,f = np.array(u) 结果 f 是array([[1, 2, 3]]),f.shape是(1,3)。
累死宝宝了:(
发现什么没?
只有当定义时候全是()得到的才会是tuple,否则都是list;
然后转成array的时候,[[]]和[()]才能转成二维数组,不然都是一维的;于是,如果想要得到二维数组,两层符号的嵌套是必要的,而且最外面一层必须是[]。以此可以类推,三维、多维数组也要满足这个条件。
就酱!希望自己写博客可以勤快点,加油!