课上笔记(六)(Python)
程序员文章站
2024-01-29 19:23:52
...
课上笔记(六)(Python)
- 学习使我快乐
NumPy→(Numerical+Python)
首先你需要知道,以后基本会使用
import numpy as np
import pandas as pd
- ndarratys
NumPy有着极为强大对象:ndarrays(Python的扩展)
首先尝试着创建一个ndarrays
输入:
import numpy as np
a = np.array([1, 2, 3, 4, 5],str)
print(a)
输出:
[1,2,3,4,5]
有一件事必须知道是创建一个ndarrays[作为一个数组,其中的所有的类型都相同,必须]
numpy.array( [ ], 类型) ————→第二个参数将用于指定存储数据类型
输入:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(a)
输出:
['1' '2' '3' '4' '5']
- 还可以直接用迭代对象创建(有点优秀啊)
输入:
import numpy as np
a = np.arange(1, 10, 2)
print(a)
输出:
[1,3,5,7,9]
- Python识别ndarrays类型即为ndarrays
输入:
import numpy as np
a = np.array([0,1,2,3,4])
print(type(a))
输出:
<class 'numpy.ndarray'>
numpy.array( [ ], ndmin = ) ndmin = 后为最小维度
输入:
import numpy as np
a = np.array([1,2,3,4,5], ndmin = 3)
b = np.array([1,2,3,4,5], ndmin = 2)
c = np.array([1,2,3,4,5], ndmin = 1)
print (a)
print (b)
print(c)
输出:
[[[1 2 3 4 5]]]
[[1 2 3 4 5]]
[1 2 3 4 5]
- shape
使用np.shape可以按照数组维度返回长度
即:
输入:
import numpy as np
b = np.array([[1,2],[4,5],[7,8]])
print(b.shape)
print(b[0,0],b[0,1],b[1,0])
输出:
(3, 2)————→第一维度3个元素,第二维度2个元素
1 2 4
如果同一纬度长度不同则返回none(同纬度长度不同的正常不在我们的考虑之内)
输入:
import numpy as np
b = np.array([[1,2],[4,5,6],[7,8,9]])
print(b.shape)
输出:
(3,)
- zeros
zeros可以把ndarrays中的所有值都更改成0
np.zeros(),括号中的元素是一个元组,和shape返回的是同一种东西
输入:
import numpy as np
a = np.zeros((2,3,4))
print(a)
输出:
[[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]
[[0. 0. 0. 0.]
[0. 0. 0. 0.]
[0. 0. 0. 0.]]]
- ones
ones可以把ndarrays中的所有值都更改成1
输入:
import numpy as np
a = np.ones((2,3,4))
print(a)
输出:
[[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]
[[1. 1. 1. 1.]
[1. 1. 1. 1.]
[1. 1. 1. 1.]]]
- size
正常来说,求多维数组中的元素总数的求法应该是shape返回的元组中所有元素的积,不过有一个专门的方法是来求多维数组中元素的总数的。
输入:
import numpy as np
a = np.zeros((2,3,4))
print(a.size)
输出:
24 ←————2*3*4=24
多维数组的切片
数组可以进行切片,多维数组也可以进行切片
简单来说,就是从左开始切片,切片是从一维开始切的
输入:
import numpy as np
a = np.arrays([[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25]])
print(a[:3:,:4:])
输出:
[[ 1 2 3 4]
[ 6 7 8 9]
[11 12 13 14]]
↑←首先,切从左开始先切:3:,先从一维开始切,所以我们拿出来一维的前三个
[[1,2,3,4,5]
[6,7,8,9,10]
[11,12,13,14,15]]
然后,从左依次切到:4:,再来切二维,所以我们拿出二维的(每个二维数组的)前四个
[[ 1 2 3 4]
[ 6 7 8 9]
[11 12 13 14]]
- ndim ←—————返回维度数
输入:
import numpy as np
a = np.array([1, 2, 3, 4, 5])
print(a.ndim)
输出:
1
输入:
import numpy as np
a = np.arrays([[1,2,3,4,5],
[6,7,8,9,10],
[11,12,13,14,15],
[16,17,18,19,20],
[21,22,23,24,25]])
print(a.ndim)
输出:
5
- reshape ←—————将多维数组返回成另一种的多维数组数组(如果reshape后的元组中的元素乘积不等于其元素总和(即:size返回值),则报错)
输入:
import numpy as np
a = np.arange(25)
print(a)
a = a.reshape((5,5))
print(a)
输出:
[ 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23]
[[ 0 1 2 3 4 5]
[ 6 7 8 9 10 11]
[12 13 14 15 16 17]
[18 19 20 21 22 23]]
[[ 0 1 2 3 4 5 6 7]
[ 8 9 10 11 12 13 14 15]
[16 17 18 19 20 21 22 23]]
- 布尔屏蔽
将一个条件表达式赋值给一个变量,这个变量就会变成一个由false和true组成的数组
将这个变量用于其他数组,就会自动选择true了
输入:
import numpy as np
a = np.arange(0,100,10)
b = a>=50
print(b)
print(a[b])
c = np.arange(0,1000,100)
b = c>=800
print(b)
print(a[b])
输出:
[False False False False False True True True True True]
[50 60 70 80 90]
[False False False False False False False False True True]
[80 90]