python矩阵所有元素取整,Python Numpy 基本属性、常用方法

1. 基本属性

No.

属性名

描述

01

shape

向量、矩阵的结构

02

dtype

向量、矩阵的数据类型

03

ndim

向量、矩阵维度

04

size

向量、矩阵的元素个数

测试代码 import numpy as np

# 定义数据

a = np.arange(15).reshape(3, 5)

# 基本属性

print(a.shape)

print(a.dtype)

print(a.ndim)

print(a.size)

结果 (3, 5)

int32

2

15

2. 常用数学运算

1. 基本运算

测试代码 import numpy as np

# 定义数据

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

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

# 基本运算

# 矩阵运算

print(b - a, '\n')

# 矩阵与常数运算

print(b - 1, '\n')

# 矩阵次幂运算

print(a ** 2)

结果 [[ 9 18]

[27 36]]

[[ 9 19]

[29 39]]

[[ 1 4]

[ 9 16]]

2. 矩阵乘法(2种)

测试代码 import numpy as np

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

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

# *号乘法,对应位置数据进行相乘

print(a * b, '\n')

# 矩阵乘法

print(a.dot(b)) # print(np.dot(a, b))

结果 [[ 10 40]

[ 90 160]]

[[ 70 100]

[150 220]]

3. 最大值、最小值

测试代码 import numpy as np

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

# 最大值

print(a.max())

# 最小值

print(a.min())

结果 40

10

4. 按行、列求和

测试代码 import numpy as np

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

# 按行求和

print(a.sum(axis=1), '\n')

# 按列求和

print(a.sum(axis=0))

结果 [30 70]

[40 60]

5. 比较运算

测试代码 import numpy as np

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

# 判断是否等于10

print(a == 10, '\n')

# 判断是否大于30

print(a > 35, '\n')

# 可以使用判断结果作为索引得到数据

dataGt35 = (a > 35)

print(a[dataGt35])

结果 [[ True False False]

[False False False]]

[[False False True]

[False True True]]

[80 40 60]

6. 向上、向下取整

测试代码 import numpy as np

a = 10 * np.random.random((2, 3))

print(a, '\n')

# 向上取整

print(np.ceil(a), '\n')

# 向下取整

print(np.floor(a))

结果 [[4.57151067 9.42335419 8.83125138]

[7.55599306 7.10207961 6.26744524]]

[[ 5. 10. 9.]

[ 8. 8. 7.]]

[[4. 9. 8.]

[7. 7. 6.]]

7. 其他常用运算(e的次幂、开平方)

测试代码 import numpy as np

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

# e的次幂操作

print(np.exp(a), '\n')

# 开平方操作

print(np.sqrt(a))

结果 [[ 2.71828183 7.3890561 ]

[20.08553692 54.59815003]]

[[1. 1.41421356]

[1.73205081 2. ]]

3. 与、或操作

测试代码 import numpy as np

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

# 与操作

print((a > 15) & (a < 35), '\n')

print((a > 15) & (a < 35), '\n')

# 或操作

print((a == 10) | (a < 30))

结果 [[False True]

[ True False]]

[[ True True]

[False False]]

4. 常用方法

No.

方法

描述

举例

01

ravel

将矩阵转换成向量

a.ravel()

02

T

转置矩阵

a.T

03

reshape

重新定义向量、矩阵结构

a.reshape(3, 4)

04

hstack

按行进行矩阵拼接

np.hstack((a, b))

05

vstack

按列进行矩阵拼接

np.vstack((a, b))

06

hsplit

按行切分矩阵

np.hsplit(a, 3)

07

vsplit

按列切分矩阵

np.vsplit(a, 3)

08

tile

使用现有矩阵扩展矩阵

np.tile(a, (3, 5))

1. ravel

测试代码 import numpy as np

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

print(a.ravel())

结果 [10 20 30 40]

2. T

测试代码 import numpy as np

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

print(a.T)

结果 [[10 30]

[20 40]]

3. reshape

测试代码 import numpy as np

a = np.arange(15)

# 将向量a重新定义结构为(3, 5)的矩阵

print(a.reshape((3, 5)), '\n')

# 如果设置-1,则表示自动计算数值

print(a.reshape((5, -1)))

结果 [[ 0 1 2 3 4]

[ 5 6 7 8 9]

[10 11 12 13 14]]

[[ 0 1 2]

[ 3 4 5]

[ 6 7 8]

[ 9 10 11]

[12 13 14]]

4. 矩阵拼接

测试代码 import numpy as np

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

b = np.array([[5, 6], [7, 8]])

# 横向拼接

print(np.hstack((a, b)), '\n')

# 纵向拼接

print(np.vstack((a, b)))

结果 [[1 2 5 6]

[3 4 7 8]]

[[1 2]

[3 4]

[5 6]

[7 8]]

5. 矩阵切分

测试代码 import numpy as np

a = np.arange(27).reshape(3, 9)

# 按行切分

print(np.hsplit(a, 3), '\n')

# 自定义切分位置

print(np.hsplit(a, (3, 5, 7)), '\n')

b = a.T

# 按列切分

print(np.vsplit(b, 3))

结果 [array([[ 0, 1, 2],

[ 9, 10, 11],

[18, 19, 20]]), array([[ 3, 4, 5],

[12, 13, 14],

[21, 22, 23]]), array([[ 6, 7, 8],

[15, 16, 17],

[24, 25, 26]])]

[array([[ 0, 1, 2],

[ 9, 10, 11],

[18, 19, 20]]), array([[ 3, 4],

[12, 13],

[21, 22]]), array([[ 5, 6],

[14, 15],

[23, 24]]), array([[ 7, 8],

[16, 17],

[25, 26]])]

[array([[ 0, 9, 18],

[ 1, 10, 19],

[ 2, 11, 20]]), array([[ 3, 12, 21],

[ 4, 13, 22],

[ 5, 14, 23]]), array([[ 6, 15, 24],

[ 7, 16, 25],

[ 8, 17, 26]])]

6. tile

测试代码 import numpy as np

a = np.arange(6).reshape(2, 3)

# 扩展矩阵

print(np.tile(a, (2, 2)))

结果 [[0 1 2 0 1 2]

[3 4 5 3 4 5]

[0 1 2 0 1 2]

[3 4 5 3 4 5]]

你可能感兴趣的:(python矩阵所有元素取整)