常用命令:
ipython --pylab
ipython notebook --pylab=inline
ipython qtconsole --python=inline
---------------------------------------------------------------------------
安装numpy报的错误解决:
在Windows7x64下使用pip安装包的时候提示报错:Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat)
原因:windows下使用pip安装包的时候需要机器装有vs2008,VS2012还不行,如果不想装VS2008的话,可以安装一个Micorsoft Visual C++ Compiler for Python 2.7的包
链接 http://www.microsoft.com/en-us/download/details.aspx?id=44266
---------------------------------------------------------------------------
ndarray.shape:数组各维的大小tuple 类型,对一个n 行m 列的矩阵来说, shape 为 (n,m)。ndarray.dtype:每个元素的类型,可以是 numpy.int32, numpy.int16, and numpy.float64 等。
ndarray.ndim:数组的维数,也称为rank
创建ndarray
1.array函数
eg: import numpy as np
a=np.array([2,3,4])
2.zeros函数生成元素全部为0的数组
ones函数生成元素全部为1的数组
empty函数生成元素没有赋值的数组
3.arange 函数生成的数组的元素按照等比数列排布,类似于 range函数。
生成数组时也可以指定元素的数据类型:
arr1=np.array([1,2,3],dtype=np.float64)
arr2=np.array([1,2,3],dtype=np.int32)
可以通过ndarray的astype方法显式地转换其dtype:
eg:
arr=np.array([1,2,3,4])
float_arr=arr.astype(np.float64)
数组切片是原始数组的视图,视图上的任何修改都会直接反映到源数组上
如果想要得到的是ndarray切片的一份副本而非视图,就需要显式地进行复制操作,例如arr[5:8].copy()
---------------------------------------------------------------------------
布尔型索引
eg:
data[names == 'Bob']
data[names == 'Bob', 2:]
names != 'Bob'
data[-(names == 'Bob')]
mask = (names == 'Bob') | (names == 'Will')
data[data < 0] = 0
data[names != 'Joe'] = 7
---------------------------------------------------------------------------
花式索引
arr[[4, 3, 0, 6]]
---------------------------------------------------------------------------arr[[-3, -5, -7]]
arr[[1, 5, 7, 2], [0, 3, 1, 2]]
arr[[1, 5, 7, 2]][:, [0, 3, 1, 2]]
arr[np.ix_([1, 5, 7, 2], [0, 3, 1, 2])]
注意,fancy索引,不像切片,它总是拷贝数据到一个新的数组。
数组转置和轴对换
转置是一种特殊形式的变形,类似的它会返回基础数据的一个视窗,而不会拷贝任何东西。数组有 transpose 方法和专门的 T 属性:
eg:arr.T
当进行矩阵运算时,你常常会这样做,像下面的例子一样,使用 np.dot 计算内部矩阵来产生 XTX` :
eg:np.dot(arr.T, arr)
---------------------------------------------------------------------------
---------------------------------------------------------------------------
---------------------------------------------------------------------------