数据科学包1

numpy:
基于矩阵的运算。
[1,2,3]
[2,3,4]
array = np.array([1,2,3], #list变成矩阵
[2,3,4])
输出结果
[[1,2,3]
[2,3,4]]

array.ndim #查看是几位数组
array.shape #查看形状(几行几列)
array.size #查看总共有多少元素

np中的创建:

1.np.array([[2,23,4],
[3,22,12]],dtype = np.int) #这种方式用列表的方式去创建,array的type是dtype
0矩阵:
a = np.zeros((3,4)) #创建一个3行4列的0矩阵
1矩阵
a = np.ones((3,4)) #创建一个3行4列的1矩阵
a = empyt((3,4)) #创建一个3行4列接近0的矩阵
2.a = np.arange(10,20,2) #和range生成列表一样,起始10,终止20,步长2的一维矩阵
由于只能生成一维矩阵,所以必须reshape更改行和列的值
a = np.arange(12).reshape((3,4))
a = linspace(1,10,20) #生成20段从1-10的 数列
a = linspace(1,10,20).reshape((2,3))

np中的基础运算和运算形式

import numpy as np
a = np.array[10,20,30,40]
b = np.arange(4)
c = a-b # [10,19,28,37] array的加法减法就是矩阵的加减法
d = a+b # [10,21,32,43]
e = b**2 # [0,1,4,9] b的平方,分别平方
b<3 #[Ture,Ture,Ture,False] ,判断b中的元素那个小于3,返回的是布尔类型的矩阵

a = np.array([[1,1],
[0,1]])
b = np.arange(4).reshape((2,2))

c = a*b #[[0 1] # 逐个相乘
[0 3]]
c_dot = np.dot(a,b) # [[2 4] #矩阵的乘法
[2 4]]
c_dot = a.dot(b) ## [[2 4] #矩阵的乘法
[2 4]]

a = np.random.random((2,4)) #生成一个随机的2行4列的矩阵
np.sum(a) # 整个array的求和
np.min(a) #array中的最小值
np.max(a) #array中的最大值

np.sum(a,axis = 1) # 整个array的求和 axis是维度,当axis = 1的时候是求每个行数的运算。axis = 0是求每个列的运算
np.min(a,axis = 1) #array中的最小值
np.max(a,axis = 0) #array中的最大值

a = np.arange(2,14).reshape((3,4))
np.argmin(a) #求最小值得索引
np.argmax(a) #求最大值的索引
np.mean(a,axsi = 0) #计算a的平局值 axsi = 0是对列进行计算,axsi=1是对行进行计算
np.mean(a) = a.mean()
np.average(a) #计算a的平均值
np.median(a) #计算a的中位数
np. cumsum(a) #逐步的加进去
在这里插入图片描述
np.diff(a) #[[1,1,1] #累差。用后一个数减去前一个数,所以行数一样,列数 = 原数组a-1
[1,1,1]
[1,1,1]]
np.sort(a) #逐行排序
np.transpose(a) 或者a.T#转向,行变成列,列变成行
np.clip(a,5,9) #第一个参数是矩阵,第二个参数是最小值,第三个参数是最大值,小于5的会变成5,大于9的会变成9,5和9之间的数字保持不变。

numpy的索引

import numpy as np
a = np.arange(3,15)
[3 4 5 6 7 8 9 10 11 12 13 14]
a[3] #和列表一样,取索引
6
a.reshape((3,4))
a[2] #二位矩阵,只有一个参数会打印某一行
[11,12,13,14]
a[2][1]或者a([2,1]) #和列表取索引一样
12
for row in a: #遍历行
print(a)
for item in a.flat: #遍历所有元素
print(a)

合并

a = np.array([1,1,1])
b = np.array([2,2,2])
c = np.vstack((a,b)) #vertical stack 上下合并,
a.shape
(3,) #一维数组
c.shape
(2,3) #2行三列
d = np.hstack((a,b)) #horizontal stack
d.shape
(6,)
一位数组的转置还是一位数组
x = a.T
x
[1,1,1]
a[np.newaxis,:] #增加维度
np.concatenate(a,b,b,a,axsi = 0) # 对比vertical stack和horizontal stck,concatenate可以在参数直接改编横向还是纵向的合并

分割

import numpy as np
a = np.arange(12).reshape((3,4))
[[0 1 2 3]
[4 5 6 7]
[8 9 10 11]]
np.split(a,2,axis = 1) #必须是等比例的分割,比如4行分成2部分,3列分成3部分
[[0 1] [[2 3]
[4 5] [6 7]
[8 9]] [10 11]]
np.array_split(a,3,axsi = 1) #可以不等比例分割
np.vsplit(a,3) #纵向分割,3块
np.hsplit(a,2) #横向分割,2块

numpy的copy

import numpy as np
a = np.arange(4)
b =a
c = a
d = b
a[0] = 11 #把11赋值给a[0]
b is a
True
c is a
True
d is a
True
b = a.copy()
a[0] = 22
b is a
False

展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试
应支付0元
点击重新获取
扫码支付

支付成功即可阅读