Python-Numpy小结1

1 基础

1.1 Numpy主要对象是多维数组,尺寸成为轴,如:
[1,2,1]#1个轴,长度为3
[[1,0,1],
[0,1,2]]#2个轴,第一维长度2,第二维长度3

其数组类为ndarray,其属性为:

ndarray.ndim#轴数
ndarray.shape#尺寸,(n,m),n行m列
ndarray.size#数组的元素和,等于形状元素的乘积
ndarray.dtype#数组中元素类型的对象
ndarray.itemsize#数组的每个元素大小(单位:字节)
1.2 numpy.ndarray初始化
  1. array([[1,2,3],[4,5,6]])
  2. arange(10,30,5) #间隔为5
  3. x = linspace( 0, 2*pi, 100 )#共100个元素, 用于浮点数
  4. zeros((3,4)), ones((2,3,4)), empty((2,3))
1.3 打印数组
  • last轴的元素从左到右
  • second-last 元素从上到下
  • the rest 元素从上到下
1.4 基本操作
A*B #对应元素相乘
dot(A,B) #点乘,内积
A.sum(axis=0)#sum of each column
A.min(axis=1)#min of each row
A.max()
1.5 索引,切片,迭代(Indexing, Slicing and Iterating)

一维 Indexing:

a[2]
a[2:5]
a[:6:2]#索引位置0-6,间隔为2
a[::-1]#逆序数组

二维Indexing:
每个轴有一个索引,逗号分隔。

b=empty((4,5))
b[2,3]
b[0:5, 1]=b[ : ,1]# each row in the second
b[1:3, : ]#each column in the second
b[-1]=b[-1,:]#last row

迭代:
默认按行输出

b=arrar([[0 1 2 3],
[10 11 12 13]])
for row in b:print row
>>>
[0 1 2 3]
[10 11 12 13]

使用flat访问每个元素

for element in b.flat:
         print element,
0 1 2 3 10 11 12 13
1.6 Shape Manipulation
改变形状
a = floor(10*random.random((3,4)))#floor向下取整函数
a.ravel()#flatten the array
a.shape
a.transpose()#转置
a.resize(2,6)
a.resize(3,-1)#-1 为自动计算
叠加数组
>>> a = floor(10*random.random((2,2)))
>>> a
array([[ 1.,  1.],
       [ 5.,  8.]])
>>> b = floor(10*random.random((2,2)))
>>> b
array([[ 3.,  3.],
       [ 6.,  0.]])
>>> vstack((a,b))
array([[ 1.,  1.],
       [ 5.,  8.],
       [ 3.,  3.],
       [ 6.,  0.]])
>>> hstack((a,b))
array([[ 1.,  1.,  3.,  3.],
       [ 5.,  8.,  6.,  0.]])

column_stack #按列叠加数组,与vstack不同;row_stack #按行叠加数组

>>> column_stack((a,b))   # With 2D arrays
array([[ 1.,  1.,  3.,  3.],
       [ 5.,  8.,  6.,  0.]])
>>> a=array([4.,2.])
>>> b=array([2.,8.])
>>> a[:,newaxis]  # This allows to have a 2D columns vector
array([[ 4.],
       [ 2.]])
>>> column_stack((a[:,newaxis],b[:,newaxis]))
array([[ 4.,  2.],
       [ 2.,  8.]])
>>> vstack((a[:,newaxis],b[:,newaxis])) # The behavior of vstack is different
array([[ 4.],
       [ 2.],
       [ 2.],
       [ 8.]])

留坑。。。分割数组,没看懂

>>> a = floor(10*random.random((2,12)))
>>> a
array([[ 8.,  8.,  3.,  9.,  0.,  4.,  3.,  0.,  0.,  6.,  4.,  4.],
       [ 0.,  3.,  2.,  9.,  6.,  0.,  4.,  5.,  7.,  5.,  1.,  4.]])
>>> hsplit(a,3)   # Split a into 3
[array([[ 8.,  8.,  3.,  9.],
       [ 0.,  3.,  2.,  9.]]), array([[ 0.,  4.,  3.,  0.],
       [ 6.,  0.,  4.,  5.]]), array([[ 0.,  6.,  4.,  4.],
       [ 7.,  5.,  1.,  4.]])]
>>> hsplit(a,(3,4))   # Split a after the third and the fourth column
[array([[ 8.,  8.,  3.],
       [ 0.,  3.,  2.]]), array([[ 9.],
       [ 9.]]), array([[ 0.,  4.,  3.,  0.,  0.,  6.,  4.,  4.],
       [ 6.,  0.,  4.,  5.,  7.,  5.,  1.,  4.]])]

“`

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值