Numpy基础操作

NumPy’s main object is the homogeneous multidimensional array. It is a table of elements (usually numbers), all of the same type, indexed by a tuple of positive integers. In NumPy dimensions are called axes. The number of axes is rank.

一、Numpy 属性

import numpy as np

array=np.array([[1,2,3],[2,3,4]]) #矩阵创建
print(array)
print('number of dim:',array.ndim); # 矩阵的秩

print('shape:',array.shape);  # 返回行列
print('size',array.size);    # 元素个数


c=np.linspace(1, 10, 6).reshape(2,3) #生成一个六段数列
print(c)



[[1 2 3]
 [2 3 4]]
number of dim: 2
shape: (2, 3)
size 6
float64
[[  1.    2.8   4.6]
 [  6.4   8.2  10. ]]

二、Numpy 基本运算

a=np.array([20,30,40,50])


b=np.arange(4) # + -运算
c=a-b
print(b)
print(a<35) #BASIC OPERATION BOOL 布尔运算
print(c)
A=np.array([[1,1],[0,1]])
B=np.array([[2,0],[3,4]])

print(A*B) #矩阵元素之间的乘法

print(A.dot(B)) #矩阵乘法
a=np.random.random((2,3)) 
print(a.sum()) # 所有元素之和
print(a.min())  #a的最小值
print(a.max())  #a的最大值





[0 1 2 3]
[ True  True False False]
[20 29 38 47]
[[2 0]
 [0 4]]
[[5 4]
 [3 4]]

[[ 0.5883172   0.02955175  0.50156931]
 [ 0.22681799  0.36697874  0.23228919]]
1.94552418211
0.0295517549633
0.58831720019

三、Numpy 索引运算

A=np.arange(3,15).reshape(3,4)
print(A)

print(A[2]) #索引行数

print(A[1][1]) #第二行第而列

print(A[2,1]) #第三行第二列

print(A[2,:]) #第三行所有数

print(A[1,1:3]) #第二行 第2-3列

A=np.arange(3,15).reshape(3,4)
for row in A:  #迭代每一行
    print(row)

for column in A.T: #迭代原矩阵的列

    print(column)

for item in  A.flat:

     print(item) 

[[ 3  4  5  6]
 [ 7  8  9 10]
 [11 12 13 14]]
[11 12 13 14]
8
12
[11 12 13 14]
[8 9]

[3 4 5 6]
[ 7  8  9 10]
[11 12 13 14]
[ 3  7 11]
[ 4  8 12]
[ 5  9 13]
[ 6 10 14]
3
4
5
6
7
8
9
10
11
12
13
14

四、Numpy 合并运算

A=np.array([1,1,1])
B=np.array([2,2,2])

c=np.vstack((A,B))  #进行一个上下的合并
d=np.hstack((A,B))  #进行一个左右的合并
print(c)
print(d)
print(A.shape,c.shape) #打印行列出来
print(A.shape,d.shape)

print(A.T)  #转制后仍然一样
A=np.array([1,1,1])
B=np.array([2,2,2])

print(A[np.newaxis,:].shape)# 横向增加一个维度
print(A[:,np.newaxis].shape) #纵向增加一个维度



A=A[:,np.newaxis]#通过纵向增加一个维度使得变成纵向向量

print(A)

B=B[:,np.newaxis]
print(B)
A=np.array([1,1,1])[:,np.newaxis]
B=np.array([2,2,2])[:,np.newaxis]

c=np.concatenate((A,B,B,A),axis=0) #纵向合并
print(c)
c=np.concatenate((A,B,B,A),axis=1) #横向合并

print(c)



[[1 1 1]
 [2 2 2]]
[1 1 1 2 2 2]
(3,) (2, 3)
(3,) (6,)
[1 1 1]

(1, 3)
(3, 1)
[[1]
 [1]
 [1]]
[[2]
 [2]
 [2]]
[[1]
 [1]
 [1]
 [2]
 [2]
 [2]
 [2]
 [2]
 [2]
 [1]
 [1]
 [1]]
[[1 2 2 1]
 [1 2 2 1]
 [1 2 2 1]]

五、Numpy 分割运算

A=np.arange(12).reshape(3,4)
print(A)

print(np.split(A,3,axis=0))#横向分割三块
print(np.split(A,2,axis=1))#横向分割三块
print(np.array_split(A,3,axis=1))#不等分割


[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]
[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]


[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]


五、Numpy 复制

存在一些情况,在改变一些矩阵而不需要改变关联矩阵值的情况下,需要用到复制。

a=np.arange(4)
b=a
c=a
print(a)
a[0]=11
print(a)
print(b)
print(c)

a=np.arange(4)
b=a.copy()

a[0]=11

print(a)

print(b)


[0 1 2 3]
[11  1  2  3]
[11  1  2  3]
[11  1  2  3]
[11  1  2  3]

[11  1  2  3]
[0 1 2 3]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值