python 数据分析 day2 数组的运算及矩阵

数组的运算与矩阵

  • 1.魔法指令
  • 2.数组的运算
          • 降维 :x.flat(返回一个迭代器)
          • 多维数组扁平化: x.flatten()
          • 累积和:x.cumsum()
          • 累积乘积:x.cumprod()
          • 最大/最小元素位置:x.argmax()/x.argmin()
          • 将指定的轴进行交换:x.swapaxes(1,0)
          • 转置:x.transpose()
          • 求和/均值/标准差/方差:sum()/mean()/std()/var()
          • 其他运算:数组的平方,相加,乘法...
    • 广播机制
    • 数组运算的函数
  • 3.矩阵

1.魔法指令

# 魔法指令:打印工作目录(print working directory)
%pwd

# 'C:\\Users\\24474\\Desktop\\DataAnalysis'

# 魔法指令:列出当前文件夹下的内容(list directory contents)
%ls

# 列出所有的魔法指令
%lsmagic

# 调用系统命令
!pip install pillow

# Requirement already satisfied: pillow in c:\anaconda\lib\site-packages (8.0.1)

2.数组的运算

array14 = np.arange(1, 10).reshape(3, 3)
array14

"""
array([[1, 2, 3],
       [4, 5, 6],
       [7, 8, 9]])
"""
降维 :x.flat(返回一个迭代器)
for value in array14.flat:
    print(value)
"""
1
2
3
4
5
6
7
8
9
"""

多维数组扁平化: x.flatten()
array14.flatten()

# array([1, 2, 3, 4, 5, 6, 7, 8, 9])
累积和:x.cumsum()

数组里的每一项,都是从开始到当前项的和的值

array([ 1,  3,  6, 10, 15, 21, 28, 36, 45], dtype=int32)

# array([ 1,  3,  6, 10, 15, 21, 28, 36, 45], dtype=int32)
累积乘积:x.cumprod()

数组里的每一项,都是从开始到当前项的乘积的值

array14.cumprod()

# array([     1,      2,      6,     24,    120,    720,   5040,  40320,
       362880], dtype=int32)
最大/最小元素位置:x.argmax()/x.argmin()
array14.argmax() #8

array14.argmin() #0
将指定的轴进行交换:x.swapaxes(1,0)
array14.swapaxes(1, 0)

"""
array([[1, 4, 7],
       [2, 5, 8],
       [3, 6, 9]])
"""
转置:x.transpose()
array14.transpose()
"""
array([[1, 4, 7],
       [2, 5, 8],
       [3, 6, 9]])
"""
求和/均值/标准差/方差:sum()/mean()/std()/var()
array15 = np.random.randint(10, 100, 10)
array15

# array([28, 61, 76, 87, 26, 32, 90, 29, 16, 16])

print(array15.sum(),np.sum(array15))
print(array15.mean(),np.mean(array15))
print(array15.std(),np.std(array15))
print(array15.var(),np.var(array15))

"""
461 461
46.1 46.1
27.840438214941948 27.840438214941948
775.0899999999999 775.0899999999999
"""
其他运算:数组的平方,相加,乘法…
array16 = np.array([1, 2, 3, 4, 5])
array16 ** 2 #array([ 1,  4,  9, 16, 25], dtype=int32)

array17 = np.array([3, 5, 2, 2, 1])
array16 + array17 #array([4, 7, 5, 6, 6])

array16 ** array17 #array([ 1, 32,  9, 16,  5], dtype=int32)

array18 = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
array19 = np.array([[1, 1, 1], [2, 2, 2], [3, 3, 3]])
array18 * array19

"""
array([[ 1,  2,  3],
       [ 8, 10, 12],
       [21, 24, 27]])
"""


广播机制

当两个形状不一样的数组进行运算时,NumPy会应用广播机制试图让两个数组的形状变得一致。

广播机制就是让数组扩展自身的一种机制,通过扩展可以让形状不同的数组变得形状相同。

但是,应用广播机制是有前提条件的:两个数组的后缘维度(shape属性的最后一个值)相同或者其中一个数组后缘维度为1,应用了广播机制以后,如果两个数组形状可以达到一致,就可以做运算;如果应用了广播机制,两个数组的形状还不能达成一致就无法做运算。

图解:
python 数据分析 day2 数组的运算及矩阵_第1张图片

python 数据分析 day2 数组的运算及矩阵_第2张图片

python 数据分析 day2 数组的运算及矩阵_第3张图片

array18
"""
[[1 2 3]
 [4 5 6]
 [7 8 9]]
"""
array20=np.array([1,1,1])

array18+array20
"""
array([[ 2,  3,  4],
       [ 5,  6,  7],
       [ 8,  9, 10]])
"""

array21=np.array([1],[2],[3])
array21
"""
array([[1],
       [2],
       [3]])
"""
array18 + array21
"""
array([[ 2,  3,  4],
       [ 6,  7,  8],
       [10, 11, 12]])
"""

数组运算的函数

NumPy中提供了非常多的用于数组运算的函数。

一元函数。
python 数据分析 day2 数组的运算及矩阵_第4张图片

二元函数。
python 数据分析 day2 数组的运算及矩阵_第5张图片

x=np.linspace(-2*np.pi,2*np.pi,80)
y1=np.sin(x)
y2=np.cos(x)
plt.plot(x,y1,marker='o',color='r')
plt.plot(x,y2,marker='x',color='b')
plt.show()

python 数据分析 day2 数组的运算及矩阵_第6张图片

3.矩阵

你可能感兴趣的:(python培训内容及作业,python,数据分析)