清空变量:在IPython里输入reset再输入y
清空输入:在IPython里输入reset in再输入y
清空输出:在IPython里输入reset out再输入y
数组
1. 构建
1.1 最普通方式
# -*- coding: utf-8 -*-
import numpy as np
a = np.array([1, 2, 3, 4])
b = np.array([[1, 2, 3, 4],[5, 6, 7, 8]])
注意python不像matlab元素之间可以空格,这里只能逗号,数组的下标从0开始
1.2 改变类型
np.array([[1, 2, 3, 4],[4, 5, 6, 7]], dtype=np.float)
Out[14]:
array([[ 1., 2., 3., 4.],
[ 4., 5., 6., 7.]])
np.array([[1, 2, 3, 4],[4, 5, 6, 7]], dtype=np.complex)
Out[15]:
array([[ 1.+0.j, 2.+0.j, 3.+0.j, 4.+0.j],
[ 4.+0.j, 5.+0.j, 6.+0.j, 7.+0.j]])
可以通过dtype参数指定类型
1.3 通过函数构建序列
np.arange(5)
Out[2]: array([0, 1, 2, 3, 4])
np.arange(1, 5)
Out[3]: array([1, 2, 3, 4])
np.arange(0,1,0.1)
Out[18]: array([ 0. , 0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])
np.linspace(0,1,12)
Out[19]:
array([ 0. , 0.09090909, 0.18181818, 0.27272727, 0.36363636,
0.45454545, 0.54545455, 0.63636364, 0.72727273, 0.81818182,
0.90909091, 1. ])
np.linspace(0,1,12,endpoint=0)
Out[20]:
array([ 0. , 0.08333333, 0.16666667, 0.25 , 0.33333333,
0.41666667, 0.5 , 0.58333333, 0.66666667, 0.75 ,
0.83333333, 0.91666667])
arange通过指定初值、终值、步长来构建序列,但不包括终值
linspace通过指定初值、终值、个数来构建序列,包括终值,可指定endpoint参数=0来不包括终值
2. 改变大小
type(a)
Out[3]: numpy.ndarray
a.shape
Out[4]: (4,)
b.shape
Out[5]: (2, 4)
b.shape=(1,-1);b
Out[9]: array([[1, 2, 3, 4, 5, 6, 7, 8]])
b.shape=(4,2);b
Out[10]:
array([[1, 2],
[3, 4],
[5, 6],
[7, 8]])
type函数可以看变量类型,通过对shape属性重新赋值可以改变维数,但其实并不改变内存里的位置,可以只指定行的维数,列的维数为-1,可以自动换算出列的维数(反之亦可),可以想到创建列向量只要.reshape(-1,1)即可