今天要来继续介绍 NumPy 的应用,包括了 Slicing 索引,Copy, View 复制, Shape, Reshape, Concatenate 等等内容。
NumPy 中的矩阵,也可以透过像 list 一样的方法去取出。
语法一样也是 [start:end:step]
。
如图,取出这个矩阵的第 1 个到第 4 个元素
import numpy as np
array1 = np.array([1, 2, 3, 4, 5, 6, 7, 8])
print(array1[1:5])
# 输出
# [2 3 4 5]
在 2-D 的矩阵也可以使用 Slicing 来取出元素,如下程序为取出第一个 row 的 1-2 个元素。
import numpy as np
array1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(array1[1, 1:3])
# 输出
# [6 7]
底下为取出第 0-1 个 row,并取出他们的第 1-2 个元素。
import numpy as np
array1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(array1[0:2, 1:3])
# 输出
# [[2 3]
# [6 7]]
这两个函式的差别在於,.copy()
是复制一个新的 array,所以改变 copy 後的 array 并不会改变到原本的 array,.view()
是给你看到原本的矩阵而已,所以改变的话会把原本的 array 也改变。我们看一下底下的例子会更清楚。
.copy()
:
底下 array1
为原本的 array,并且用 .copy()
函式来复制一个一样的 array 给 x
,这时若改变 x
,并不会对原本的 array1
造成影响。
import numpy as np
array1 = np.array([1, 2, 3, 4])
x = array1.copy()
x[0] = 4
print(x) # [4 2 3 4]
print(array1) # [1 2 3 4]
.view()
:
底下 array1
为原本的 array,并且用 .view()
函式来把 array1
给 y
看见,这时若改变 y
,相当於改变了 array1
。
import numpy as np
array1 = np.array([1, 2, 3, 4])
y = array1.view()
y[0] = 4
print(y) # [4 2 3 4]
print(array1) # [4 2 3 4]
得到矩阵的 dimesions
使用 .shape
函式,可以得到现在这个 array 的 dimesions,像底下就代表这个 array 有 2 个 dimesions,并且每个 dimesions 有 4 个 element。
import numpy as np
array1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
print(array1.shape)
# 输出
# (2, 4)
也可以透过这个函式调整 array 的维度,把它改为 4 x 2 的 array,他会直接改变原本的 array
import numpy as np
array1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
array1.shape = (4, 2)
print(array1)
# 输出
# [[1 2]
# [3 4]
# [5 6]
# [7 8]]
调整 array 的维度,但不会改变原本的 array,而是创建一个副本。
import numpy as np
array1 = np.array([[1, 2, 3, 4], [5, 6, 7, 8]])
y = array1.reshape(4, 2)
print(array1)
# 输出
# [[1 2 3 4]
# [5 6 7 8]]
print(y)
# 输出
# [[1 2]
# [3 4]
# [5 6]
# [7 8]]
代号 | 数字 |
---|---|
Inf = inf = infty = Infinity = PINF | 正无限大 +∞ |
NINF | 负无限大 -∞ |
PZERO | 正 0 |
NZERO | 负 0 |
nan = NaN = NAN | 非数值 |
e | 自然数 e |
pi | π |
newaxis | None 的别称 |
print(np.inf)
print(np.NINF)
print(np.PZERO)
print(np.NZERO)
print(np.nan)
print(np.e)
print(np.pi)
print(np.euler_gamma)
print(np.newaxis)
# 输出
# inf
# -inf
# 0.0
# -0.0
# nan
# 2.718281828459045
# 3.141592653589793
# None
np.concatenate()
:如果需要把两个 array 合并的时候,就可以使用这个函式。
a = np.array([1, 2, 3, 4])
b = np.array([5, 6, 7, 8])
print(np.concatenate([a, b]))
# 输出
# [1 2 3 4 5 6 7 8]
NumPy 真的太多函式可以使用,今天就先暂时介绍到这边了!明天再继续。
待续...
>>: Day 26: Insertion sort & Selection sort
印表机维修常见故障问题,原因分析:对於喷墨印表机,可能有两方面原因:1.墨盒墨尽;2.印表机长时间不...
If you are expecting to clear the Tableau Desktop ...
前言 一开始没接触过程序的人应该都会有个疑问 那就是第一个语言我该从哪个程序语言开始学起呢? 但是我...
常听说出事了就想找老大摆平, 结果在群内的地位越来越低, 如果能试着自己处理问题, 把事情Handl...
年轻人才做选择,我都要! 工程师会命令电脑选择甲方要的.... 题目连结:https://leetc...