【Python数据处理】Numpy

Numpy是处理矩阵的包。

1 Numpy安装

python -m pip install  numpy scipy matplotlib ipython jupyter pandas sympy nose -i https://pypi.douban.com/simple/
#建议使用用户安装,将--user标志发送给pip。 pip为本地用户安装软件包,并且不写入系统目录。

2 Numpy的属性

import numpy as np
import pandas as pd

#列表
array1=[[1,2,3],
                [2,3,4],
                [3,4,5]]
#列表转换为矩阵
array2=np.array(array1)
print(array2)
#矩阵的维数 2
print(array2.ndim)
#矩阵的行数和列数 (3,3)
print(array2.shape)
#矩阵的元素总数 9
print(array2.size)

3 Numpy的定义

import numpy as np
import pandas as pd

#创建一个矩阵,指定矩阵的类型为int/float
a=np.array([[2,5,3],[3,1,7]],dtype=np.int)
print(a.dtype) #int32

#创建一个全部为0的矩阵,3行4列,一定要用()括上
b=np.zeros((3,4),dtype=int)
print(b)

#创建一个全部为1的矩阵
c=np.ones((2,1), dtype=np.float)
print(c)

#创建一个空矩阵
d=np.empty((4,3))
print(d)#生成一个几乎为0的矩阵

#生成一个矩阵,从10开始到20,步长为2
e=np.arange(10,20,2)
print(e)#[10 12 14 16 18]

#在上一个基础上,规定矩阵的形状
f=np.arange(12).reshape((3,4))
print(f)

#生成一个矩阵,从1到10,有5个数字
g=np.linspace(1,10,5)
print(g)#[ 1.    3.25  5.5   7.75 10.  ]

#在上一个基础上,更改形状
h=np.linspace(1,10,6).reshape((2,3))
print(h)

4 Numpy运算

  1. 对应元素运算
a=np.array([10,20,30,40])
b=np.arange(4)
print(a,b)

#矩阵的加减乘除法:对应元素相加减
c=a+b
print('加:',c)
c=a-b
print('减:',c)
c=a*b
print('乘:',c)
#c=a/b
#print('除:',c)

#c=b对应元素平方
c=b**2
print('平方:',c)

#对于矩阵a中每个元素计算sin/cos/tan值乘10
c=10*np.sin(a)
print('sin:',c)

#判断矩阵中有哪些数小于或大于特定的值
print(b<3)#[ True  True  True False]
  1. 矩阵乘法
a1=np.array([[1,2],[3,4]])
b1=np.array([[1,0],[1,1]])
#矩阵乘法
c1=np.dot(a1,b1)
print('矩阵乘法',c1)
#创建一个随机生成的2*4矩阵,值为0-1
d=np.random.random((2,4))
print(d)
#所有元素之和
print(np.sum(d))
#以列求和
print(np.sum(d,axis=0))
#以行求和
print(np.sum(d,axis=1))
print(np.min(d))
print(np.max(d))
a=np.arange(2,14).reshape(3,4)
print(a)
#最小值的索引
print(np.argmin(a))
print(np.argmax(a))
#平均值
print(a.mean())
print(np.average(a))
#中位数
print(np.median(a))
#累加
print(np.cumsum(a))
#累差
print(np.diff(a))

#非零数
print(np.nonzero(a))
#aT
print(np.transpose(a))#同a.T

#a × aT
print((a.T).dot(a))

#对于a的元素,所有小于5的都等于5,大于9的都等于9
print(np.clip(a,5,9))

5 Numpy的索引

#输出a下标为[1][1]的元素值,同[1,1]
print(a[1][1])
#第二行的所有数(从0 开始)
print(a[2,:])
#第三行,1到3列数
print(a[3,1:3])

import numpy as np
import pandas as pd

a=np.arange(14,2,-1).reshape(3,4)
#print(a)

for row in a:
    print(row)
for column in a.T:
    print(column)

print(a.flatten())#将一个3*4矩阵,变成一维矩阵
for item in a.flat:
    print(item)

6 Numpy的array合并

import numpy as np
import pandas as pd

a=np.array([1,1,1])
b=np.array([2,2,2])

#上下合并a b
c=np.vstack((a,b))
print(c,c.shape)

#左右合并a b
d=np.hstack((a,b))
print(d,d.shape)
#合并 aT与bT
c=np.vstack((a[:,np.newaxis],b[:,np.newaxis]))
d=np.hstack((a[:,np.newaxis],b[:,np.newaxis]))
print(c)
print(d)
import numpy as np
import pandas as pd

a=np.array([1,1,1])[:,np.newaxis]
b=np.array([2,2,2])[:,np.newaxis]
#合并 aT与bT
c=np.vstack((a[:,np.newaxis],b[:,np.newaxis]))
d=np.hstack((a[:,np.newaxis],b[:,np.newaxis]))
#print(c)
#print(d)

#合并多个矩阵,左右合并
e=np.concatenate((a,b,b,a),axis=0)
#上下合并
e=np.concatenate((a,b,b,a),axis=1)
print(e)

7 Numpy的array分割

  1. 均匀分割
a=np.arange(12).reshape(3,4)
print(a)

#对a左右分割为两个矩阵
print(np.split(a,2,axis=1))

print(np.split(a,3,axis=0))
  1. 不等分割

#对矩阵进行不等分割
print(np.array_split(a,3,axis=1))

8 Numpy的copy和deep copy

import numpy as np
import pandas as pd

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

b=a
d=b
a[0][0]=2
print(a)
print(b)
print(b is a) #b、c、d和a在内存中指向同一片区域,true,改变a,b也跟着变

#若不想让其关联
c=a.copy()#deep copy
print(c is a) #false
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值