20150302-python启程-numply(1)

本文介绍NumPy的基础用法,包括安装配置、基本概念如ndarray的shape、dtype、ndim等,以及数组创建、索引、切片、转置等操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

常用命令:

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)


---------------------------------------------------------------------------


---------------------------------------------------------------------------



---------------------------------------------------------------------------


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值