949-刘同学-python方向-python数据分析-就业:否 扫二维码继续学习 二维码时效为半小时

(0评价)
价格: 免费

=赋值:当一个数组的值改变时,被赋值的任一数组的值相应改变

若不想要这种关联性,则采用.copy()

[展开全文]

import numpy as np

//等量分割

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

//横向分割

//或:print(np.vsplit(A,2))

//输出:

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

print(np.split(A,3,axis=0))

//纵向分割

 

//输出:

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

print(np.split(A,2,axis=1))

//不等量分割

//输出:

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

print(np.array_split(A,3,axis=0))

[展开全文]

import numpy as np

//序列的垂直拼接

//输出:

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

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

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

C = np.vstack((A,B))

print(C)

print(A.shape, C.shape)

//序列的水平拼接

//输出:

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

 

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

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

D = np.hstack((A,B))

print(D)

print(A.shape, D.shape)

//将横向序列转变为竖向序列:通过np.newaxis改变维度

//输出:

[[1]
 [1]
 [1]]

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

A = A[:, np.newaxis]

//或:A = np.array([1,1,1])[:, np.newaxis]

print(A)

 

//合并时定义合并的维度

//输出:

[[1 2 2 1]
 [1 2 2 1]
 [1 2 2 1]]

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

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

C = np.concatenate((A,B,B,A),axis =1)

print(C)

 

[展开全文]

import numpy as np

//一维序列索引

A = np.arrange(3,15)

//输出:

6

print(A[3])

//二维数组索引

//输出:

[11 12 13 14]

8

12

A = np.arrange(3,15).reshape((3,4))

print(A[2])

print(A[1][1])

print(A[2,1])

//用冒号输出所有数

//输出:

[4 8 12]

[8 9]

print(A[:,1])

print(A[1, 1:3])

//用for迭代每一行的数

//输出:

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

for row in A:

    print (row)

//用for循环迭代每一列的数

//输出:

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

for column in A.T:

    print (column)

//迭代每一个项目

for item in A.flat:

    print(item)

 

[展开全文]

import numpy as np

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

 

//输出最小值的索引

//输出:0

print(np.argmin(A))

//输出最大值的索引

//输出:11

print(np.argmax(A))

//计算平均值方法1:

//输出:7.5

print(np.mean(A))

//或:print(A.mean())

//计算平均值方法2:

//输出:7.5

print(np.average(A))

//计算中位数

//输出:7.5

print(np.median(A))

//累加

//输出:[ 2  5  9 14 20 27 35 44 54 65 77 90]

print(np.cumsum(A))

//累差

//输出:

[[1 1 1]
 [1 1 1]
 [1 1 1]]

print(np.diff(A))

//输出非零的数的位置(输出的 第一个array代表行数,第二个array代表列数)

//输出:(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))

print(np.nonzero(A))

//逐行从小到大排序

//输出:

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

print(np.sort(A))

//矩阵的转置

//输出:

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

print(np.transpose(A))

//或:print(A.T)

//矩阵转置和矩阵相乘

//输出:

[[140 158 176 194]
 [158 179 200 221]
 [176 200 224 248]
 [194 221 248 275]]

print((A.T).dot(A))

//设置一个范围,矩阵中大于该范围的值都用范围的最大值表示,小于该范围的值都用范围的最小值表示

//输出:

[[5 5 5 5]
 [6 7 8 9]
 [9 9 9 9]]

print(np.clip(A,5,9))
[展开全文]

1. numpy的运算

import namoy as np

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

b = np.arange(4)

 

加法:

print(a,b)

c = a+b

print(c)

输出结果:

[10 20 30 40] [0 1 2 3]

[10 21 32 43]

 

平方:

c = b**2

print(c)

输出结果:

[0 1 4 9]

 

sin/cos:

c = 10*np.cos(a)

print(c)

输出结果:

[-8.39071529  4.08082062  1.5425145  -6.66938062]

 

判断序列中数值大小是否符合条件:

print(b)

print(b==3)

输出结果:

[0 1 2 3]
[False False False  True]

 

矩阵乘法:

(1)逐个相乘:

a = np.array([[1,1],

                      [0,1]])

b = np.arrange(4).reshape(2,2)

c = a*b

print(c)

输出结果:

[[0 1]

 [0 3]]

(2)矩阵相乘:

a = np.array([[1,1],

                      [0,1]])

b = np.arrange(4).reshape(2,2)

c_dot = np.dot(a,b)

//或:c_dot = a.dot(b)

print(c_dot)

输出结果:

[[2 4]

 [2 3]

 

求和、最大值、最小值

import numpy as np

a = np.random.random((2,4))

 

print(a)

print(np.sum(a))

print(np.min(a))

print(np.max(a))

输出结果:

[[0.54856051 0.75547687 0.97634788 0.03362161]
 [0.03198332 0.70799137 0.07809093 0.76455108]]
3.8966235679462295
0.03198332442659946
0.9763478806201845
[2.31400687 1.5826167 ]

(axis=0表示在列数中的结果,axis=1b)

 

[展开全文]

1. 创建列表和矩阵

列表:

import numpy as np

a = np.array([2,23,4])

print(a)

输出:[2 23 4]

(输出结果中无逗号)

矩阵:

import numpy as np

a = np.array([2,23,4]

                     [2,32,4])

print(a)

输出:

[2,23,4]

[2,32,4]

2. 设置和显示数据类型

import numpy as np

a = np.array([2,23,4], dtype=np.int)

print(a.dtype)

输出:int64

(不输入数据长度时默认为64位)

import numpy as np

a = np.array([2,23,4], dtype=np.int32)

print(a.dtype)

输出:int32

若需要存储空间小,则设置小的数据长度(e.g.16位);

若需要存储空间大,则设置大的数据长度(e.g. 64位)

3. 创建全0矩阵、全1矩阵和空矩阵

全0矩阵:

a = np.zero( (3,4) )

print(a)

输出结果:

[[0. 0. 0. 0.]

 [0. 0. 0. 0.]

 [0. 0. 0. 0.]

 [0. 0. 0. 0.]]

全1矩阵:

a = np.ones( (3,4), dtype=np.int16 )

print(a)

输出结果:

[[1 1 1 1]

 [1 1 1 1]

 [1 1 1 1]

 [1 1 1 1]]

空矩阵:

a = np.empty( (3,4) )

print(a)

输出结果:

[[6.23042070e-307 1.89146896e-307 1.37961302e-306 1.05699242e-307]
 [8.01097889e-307 1.78020169e-306 7.56601165e-307 1.02359984e-306]
 [1.29060531e-306 1.24611741e-306 1.11261027e-306 3.01468662e+161]]

(是十分接近0的数)

4. 生成有序序列或矩阵(相当于python中的range功能)

a = np.arange(10,20,2)

print(a)

输出:

[10 12 14 16 18]

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

print(a)

[[0 1 2 3]

 [4 5 6 7]

 [8 9 10 11]]

5. 创建linspace()

a = np.linspace(1,10,5)

print(a)

输出结果:

[1. 3.25 5.5 7.75 10.]

a = np.linspace(1,10,6).reshape((2,3))

print(a)

输出结果:

[[1. 2.8 4.6]

 [6.4 8.2 10.]]

 

 

[展开全文]

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)

 

输出结果:

[[1,2,3],

 [2,3,4]]

number of dim: 2

shape: (2,3)

size: 6

 

 

[展开全文]

DQL(数据库查询操作)

1. ORDER BY排序:通过ORDER BY对查询结果排序,默认为升序(ASC),标注DESC为降序

[展开全文]

HAVING子句,对分组记录结果进行二次筛选(只能使用在分组之后)

[展开全文]

GROUP BY分组(单独使用时只会显示组中第一条记录)

(1)配合GROUP_CONTACE()得到分组详情

(2)配合聚合函数

【1】COUNT()

【2】MAX()

【3】MIN()

【4】AVG()

【5】SUM()

(3)配合WITH POLLUP记录上面所有记录的综合

 

[展开全文]

DQL:

(1)查询记录:

SELECT select_expr [, select_expr ...]

[

FROM table_references

[WHERE 条件]

[GROUP BY {col_name | position} [ASC| DESC], ... 分组]

[HAVING 条件 对分组结果进行二次筛选]

[ORDER BY {col_name | position} [ASC| DESC], ...排序]

[LIMIT 限制显示条数]

]

(2)查询表方式

【1】每一个表达式表示想要的一列,必须至少有一列,多个列之间以逗号分隔

【2】*表示所有列,tbl_name.*可以表示命名的所有列

【3】查询表达式可以用 [AS]alias_name为其赋予别名

[展开全文]

更新数据:

UPDATE tbl_name 字段名称=值,...[WHERE条件][ORDER BY字段名称][LIMIT限制条数]

 

删除数据(不清空自增长的值):

DELETE  tbl_name 字段名称=值,...[WHERE条件][ORDER BY字段名称][LIMIT限制条数]

彻底清空数据表(清空自增长的值):

TRUNCATE [TABLE] tbl_name

[展开全文]

DML操作

(1)插入数据

【1】不指定具体的字段名:INSERT [INTO] tbl_name VALUES|VALUE(值)

【2】列出指定字段:INSERT[INTO] tbl_name(字段名称1,...) VALUES|VALUE(值1,...)

值和字段顺序一一对应

【3】同时插入多条记录:INSERT [INTO] tbl_name[(字段名称...)] VALUES(值...),(值...)...

【4】通过SET形式插入记录:INSERT [INTO] tbl_name SET 字段名称=值,...

【5】将查询结果插入到表中:INSERT [INTO] tbl_name[(字段名称,...)] SELECT 字段名称 FROM tbl_name [WHERE 条件]

[展开全文]

删除数据表:DROP TABLE [IF EXISTS] tbl_name[, tbl_name...]

[展开全文]

添加唯一:ALTER TABLE tbl_name ADD [constraint [symbol]] PRIMARY KEY [index_type] [索引名称] (字段名称, ...)

删除唯一:ALTER TABLE tbl_name DROP {index_name}

修改表的存储引擎:ALTER TABLE tbl_name ENGINE=存储引擎名称

设置自增长的值:ALTER TABLE tbl_name AUTO_INCREMENT=值

[展开全文]

添加主键:ALTER TABLE tbl_name ADD [CONSTRAINT [symbol]] PRIMARY KEY[index_type] (字段名称, ...)

 

删除主键:ALTER TABLE tbl_name DROP PRIMARY KEY

删除主键时如果主键时自增长的,则需要先去除自增长属性,再删除主键

[展开全文]

添加默认值:

ALTER TABLE tbl_name ALTER字段名称 SET DEFAULT默认值

删除默认值:

ALTER TABLE tbl_name ALTER 字段名称 DROP DEFAULT

[展开全文]

修改字段:ALTER TABEL tbl_name MODIFY 字段名称 字段类型 [完整性约束条件] [FIRST|AFTER字段名称]

修改字段名称:ALTER TABLE tbl_name CHANGE 旧字段名称 新字段名称 字段类型 [完整性约束条件] [FIRST|ALTER字段名称] 

移动字段位置

[展开全文]

添加字段:ALTER TABLE tbl_name ADD 字段名称 字段类型 [完整性约束条件] [FIRST|ALTER 字段名称]

默认添加在末尾

 

删除字段:ALTER TABLE tbl_name DROP字段名称

[展开全文]