数据科学D1 numpy&pandas用处+安装+numpy基本属性+创建array+基础运算+索引+array合并+array分隔+copy

1、numpy&pandas用处
运算速度快
numpy基于矩阵运算

2、安装

3、numpy基本属性
–简写为np
import numpy as np

–长3高2的矩阵(列表)
[[1,2,3],
[2,3,4]]
–转换为矩阵
array=np.array([[1,2,3]
[2,3,4]])
–输出矩阵
print(array)
–几维数组dim 2
print(‘number of dim:’,array.ndim)
–形状,行数列数shape (2,3)
print(‘shape:’,array.shape)
–多少元素size 6=2*3
print(‘size:’,array.size)

4、创建array
import numpy as np
– 一维
a=np.array([2,23,4])
print(a)
=[2 23 4]

a=np.array([2,23,4],dtype=np.int)
print(a.dtype)
=int64(默认)

a=np.array([2,23,4],dtype=np.float)
print(a.dtype)
=float64(默认)64位更精确

a=np.array([2,23,4],dtype=np.float32)
print(a.dtype)
=float32(指定)

– 二维
a=np.array([2,23,4],
[2,32,4]])
print(a)

– 全部为0的矩阵
a=np.zeros((3,4))
print(a)

– 全部为1的矩阵
a=np.ones((3,4),dtype=np.int16)
print(a)

–什么都没有
a=np.empty((3,4))
print(a)

– 有序数列
a=np.arange(10,20,2)
print(a)
[10,12,14,16,18]

– 3行3列的数列
a=np.arange(12).reshape((3,4))
print(a)

– 生成线段
a=np.linspace(1,10,5)
print(a)
a=np.linspace(1,10,6).reshape((2,3))
print(a)

5、numpy基础运算
import numpy as np
a=np.array([10,20,30,40])
b=np.array(4)
print(a,b)

– 减法
c=a-b
print©

– 加法
c=a+b
print©

– 次方(
c=b
4
print©

– sin,cos等三角函数
c=10np.sin(a)
print©
c=10
np.tan(a)
print©

– array中哪些值大于/小于……
print(b)
print(b<3)
print(b==3)

– 运算二维矩阵
a=np.array([[1,1],
[0,1]])
b=np.array(4).reshape((2,2))
print(a)
print(b)
– 逐个相乘
c=a*b
– 矩阵相乘
c_dot=a.dot(b)
c_dot_2=np.dot(a,b)

– 随机生成
import numpy as np
a=np.random.random((2,4))
print(np.sum(a))
print(np.min(a))
print(np.max(a))

print(np.sum(a,axis=1)) 每列求和
print(np.min(a,axis=0)) 每行求最小
print(np.max(a,axis=1))

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

– 最小值索引
print(np.argmin(A))

– 最大值索引
print(np.argmax(A))

– 平均值
print(np.mean(A))
print(A.mean())
– mean可以指定行列
print(np.mean(A,axis=0) 列
print(np.mean(A,axis=1) 行
print(np.average(A))

– 中位数
print(np.median(A))

– 累加
print(np.cumsum(A))

– 两两之差
print(np.diff(A))

– 值的对应位置,行数+列数
print(np.nonzero(A))

– 排序
print(np.sort(A))

– 矩阵的反向,行变成列,列变成行
print(np.transpose(A))
print(A.T)
– 再叠加乘法
print((A.T).dot(A))

– clip功能:<5的数都=5,>9的数都=9,5和9之间的数保留不变
print(np.clip(A,5,9))

6、numpy的索引
import numpy as np

一维
A=np.arange(3,15)
print(A)
– 第三个值
print(A[3])

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

– 2的索引数
print(A[2])
– 索引第2行第1列
print(A[2][1])
print(A[2,1])
– 第二行所有数
print(A[2,:])
– 第一列所有数
print(A[:,1])
– 第一行1-2的值
print(A[1,1:2])

– for循环
– 每一行的数
for row in A:
print(row)
for column in A.T:
print(column)
– 迭代项目(A.flat是迭代器)
print(A.flatten())
for item in A.flat:
print(item)

7、numpy的array合并
import numpy as np
A=np.array([1,1,1])
B=np.array([2,2,2])

– 上下合并 #vertical stack
C=np.vstack((A,B))
print(A.shape,C.shape)

– 左右合并 #horizontal stack
D=np.hstack((A,B))
print(D)
print(A.shape,D.shape)

– 将横向数列变成竖向
print(A[:,np.newaxis])
A=A[:,np.newaxis]
B=B[:,np.newaxis]
C=np.vstack((A,B))
print©
D=np.hstack((A,B))
print(D)

– 多个合并,并加要求
C=np.concatenate((A,B,B,A),axis=0)
print©

8、numpy array分隔
import numpy as np
A=np.arange(12).reshape((3,4))

– 横向分隔,对列进行分隔
print(np.split(A,2,axis=1))

– 纵向分隔,对行进行分隔
print(np.split(A,3,axis=0))

– 不等量分隔
print(np.array_split(A,3,axis=1))

print(np.vsplit(A,3)) 纵
print(np.hsplit(A,2)) 横

9、numpy array的复制 copy and deep copy
import numpy as np
a=np.arange(4)
print(a)
b=a
c=a
d=b

a[0]=11
print(a)
b is a --true
print(b)
print©
print(d)

d[1:3]=[22,33]
print(d)
print(a) —a,b,c也改变

#deep copy(copy值 但不关联)
b=a.copy()
print(b)
a[3]=44
print(b) --a变,b不改变

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值