numpy和pandas学习总结2(莫烦python视频)

numpy基础运算

sum(), min(), max()的使用

import numpy as np
a=np.random.random((2,4))
print(a)
#生成2行4列的矩阵,每一个元素都是从0到1之间的随机数
np.sum(a) # 对所有元素求和
np.min(a) #求所有元素最小值
np.max(a) #求所以元素最大值

如果需要按照行和列进行查找运算,则需要对axis属性进行赋值。

axis=0  按列查找    axis=1    按行查找

np.sum(a,axis=1)    #按行求和
np.min(a,axis=0)    #按列求最小值
np.max(a,axis=1)    #按行求最大值

argmin() 和argmax() 的使用

import numpy as np
A=np.arange(2,14).reshape(3,4)

#array([[2,3,4,5],[6,7,8,9],[10,11,12,13]])

print(np.argmin(A))   #最小元素的索引   0
print(np.argmax(A))   #最大元素的索引   11


#求整个矩阵的平均值
print(np.mean(A))    #7.5
print(np.average(A))  #7.5
#或者可以写作
print(A.mean())
#求解中位数的函数
print(A.median())   #7.5


#累加函数cumsum()
print(np.cumsum(A))
#[2  5  9 14 20 27 35 44 54 65 77 90]


#累差运算函数diff()
print(np.diff(A))
#[[1 1 1]
  [1 1 1]
  [1 1 1]]
#计算每一行中后一项与前一项之差

nonzero()函数:将所有非零元素的行和列的坐标分割重构成两个矩阵

print(np.nonzero(A))
#(array([0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2], dtype=int64), array([0, 1, 2, 3, 0, 1, 2, 3, 0, 1, 2, 3], dtype=int64))

排序函数sort() :仅对每一行进行从小到大的操作

import numpy as np
A=np.arange(14,2,-1).reshape(3,4)
#[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]
print(np.sort(A))
#[[11 12 13 14]
 [ 7  8  9 10]
 [ 3  4  5  6]]

矩阵的转置

print(np.transpose(A))
print(A.T)

clip()函数: 格式为clip(Array,Array_min,Array_max),Array指的是将要被执行的矩阵,后面的最小值最大值用于让函数判断矩阵元素中是否有超出最大最小值范围的数,如果有,则把相应的元素转变为最大值或者最小值。

import numpy as np
A=np.arange(14,2,-1).reshape(3,4)
#[[14 13 12 11]
 [10  9  8  7]
 [ 6  5  4  3]]

print(np.clip(A,4,10))
#[[10 10 10 10]
 [10  9  8  7]
 [ 6  5  4  4]]

numpy的索引

一维索引:        A[i]

二维索引:     A[x][y]  #x表示行,y表示列。   A[X,Y]      A[x,1:3]    (相应的行和列可以进行切片操作)

打印

for row in A
    print(row)
#按行打印

for column in A.T
    print(column)
#按行打印,原矩阵转置之后按行打印,即为原矩阵的按列输出


#迭代输出
import numpy as np
A=np.arange(3,15).reshape((3,4))

print(A.flatten())
#[ 3  4  5  6  7  8  9 10 11 12 13 14]
#flatten是一个展开性质的函数

for item in A.flat
    print(item)
#3
#4
....
#14
#falt为迭代器,本身为object属性

numpy的合并

#np.vstack   上下合并

import numpy as np
A=np.array([1,1,1])
B=np.array([2,2,2])
print(np.vstack((A,B)))
#[[1 1 1]
 [2 2 2]]


#np.hstack()  左右合并
D=np.hstack((A,B))
print(D)
#[1 1 1 2 2 2]

#np.newaxis()  
print(A[np.newaxis,:])
#[[1 1 1]]
print(A[:,np.newaxis])
#[[1]
 [1]
 [1]]

#实例
import numpy as np
A=np.array([1,1,1])[:,np.newaxis]
B=np.array([2,2,2])[:,np.newaxis]
C=np.vstack((A,B))
D=np.hstack((A,B))
print(C)
#[[1]
 [1]
 [1]
 [2]
 [2]
 [2]]
print(D)
#[[1 2]
 [1 2]
 [1 2]]


#np.concatenate()
C=np.concatenate((A,B,B,A),axis=0)
D=np.concatenate((A,B,B,A),axis=1)
#axis=0时,上下合并;axis=1时,左右合并。

numpy  array分割

#创建数据
import numpy as np
A=np.arange(12).reshape((3,4))
print(A)
#[[ 0  1  2  3]
 [ 4  5  6  7]
 [ 8  9 10 11]]

#纵向分割
print(np.split(A,2,axis=1))
#[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2,  3],
       [ 6,  7],
       [10, 11]])]

#横向分割
print(np.split(A,3,axis=0))
[array([[0, 1, 2, 3]]), array([[4, 5, 6, 7]]), array([[ 8,  9, 10, 11]])]


#不等量对分  np.array_split()
print(np.array_split(A,3,axis=1))
#[array([[0, 1],
       [4, 5],
       [8, 9]]), array([[ 2],
       [ 6],
       [10]]), array([[ 3],
       [ 7],
       [11]])]

#其他分割方式np.vsplit()与np.hsplit()
print(np.vsplit(A,3))  #等同于print(np.split(A,3),axis=0)
print(np.hsplit(A,2))  #等同于print(np.split(A,2),axis=1)

Numpy copy &deep copy

=的赋值方法带有关联性

copy()的赋值方法没有关联性     b=a.copy()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值