numpy相关知识笔记

import numpy as np
a = np.full((3,4), 8)
a
print(a.ndim)
print(a.shape)
a[1,1]
b = np.ravel(a)
b

输出:
array([[8, 8, 8, 8],
       [8, 8, 8, 8],
       [8, 8, 8, 8]])
2
(3, 4)
8
array([8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8])

语法笔记

  1. 二维数组第一个元素所在位置是0行0列
  2. np.array([0,0]) 一维数组[0,0]
  3. np.power(3,2) 3的平方
  4. a.ravel() 或 np.ravel(a)用于将多维数组转换为一维行数组,行优先。
  5. 在numpy中,array([1, 2, 3, 4])既是行向量也是列向量。
  6. np.linspace(data.Population.min(), data.Population.max(), 100)生成一个等间距数组,有100个值
  7. np.eye(n)生成一个n*n的单位矩阵(主对角线元素均为1,其他全都为0)
  8. np.reshape(array(), (m,n))
    np.linspace(1, n, n).reshape(-1,1) -1 的作用是让NumPy自动计算该维度的值,使函数能够正确地调整数组的形状
  9. np.random.multivariate_normal(mean, cov, m).T 生成多元正态分布的样本
    “mean” 是分布的均值
    “cov” 是分布的协方差矩阵
    “m” 是采样数量
  10. 创建向量:A = np.array([1,2,3,4])
  11. NumPy算术函数:
    a = np.array([1,2,3])
    b = np.array([4,5,6])
    np.add(a,b) # 加
    np.subtract(a,b) # 减
    np.multiply(a,b) # 乘
    np.divide(a,b) # 除
    np.exp(-z) # e的-z次方
  12. np.log() ln
    np.log10() lg
    np.log3() 计算以3为底数的对数
  13. numpy中,array和matrix的区别:
    NumPy的array是数组对象,可以是一维或多维的,可以包含任意类型的数据,如整数、浮点数、字符串等。
    NumPy的matrix是二维数组对象,专门用于矩阵运算,并且默认数据类型为浮点数。
    array:可以是一维或多维的
    matrix:只能是二维的
    np.array([[1,2,3]]) 表示1*3二维array
    np.array([1,2,3])表示一维array(一维向量),没有行和列,就是一串数字
    二维array和矩阵的特性,有些相同,有些不同。
    在科学计算中,输入的数据应表示为矩阵的形式np.matrix([[1,2,3]]),便于计算。
  14. np.ones((5,))创建一个长度为 5 的一维数组,每个元素都是 1 。
    (5, )表示一维数组,长度为5。
    (3, )表示一维数组,长度为3。
    注意:一维数组没有行和列的概念
  15. X = np.insert(X, 0, values=np.ones(rows), axis=1)
    在二维数组X的0列之前插入一列,值全为1。
    二维数组有行维度和列维度两个维度,axis=0表示沿着行维度操作,axis=1表示沿着列维度操作。
  16. np.argmax(h, axis=1)返回二维数组h的每行中最大元素的索引。
  17. 若X是二维数组,X[0]表示提取X的第一行,X[1]表示提取X的第二行。

数组np.array/矩阵np.matrix乘法相关

import numpy as np

# 点乘内积和外积
a = np.array([1, 2, 3])
b = np.array([4, 5, 6])
result1 = np.dot(a, b)
result2 = np.outer(a, b)
print(result1)
print(result2)
输出:
32
[[ 4  5  6]
 [ 8 10 12]
 [12 15 18]]

# np.matmul(a, b)和a @ b
c = np.array([[1, 2, 3],
              [4, 5, 6]])
d = np.array([[1, 2],
              [3, 4],
              [5, 6]])
print(c @ d)
print(np.matmul(c, d))
输出:
[[22 28]
 [49 64]]
[[22 28]
 [49 64]]

# 元素对位相乘示例
a = np.array([[1, 2],
              [3, 4]])
b = np.array([[5, 6],
              [7, 8]])
print(a * b)
输出:
[[ 5 12]
 [21 32]]

# 矩阵乘法示例
a = np.matrix([[1, 2],
              [3, 4]])
b = np.matrix([[5, 6],
              [7, 8]])
print(a * b)
输出:
[[19 22]
 [43 50]]
  1. 内积: np.dot(a, b);外积: np.outer(a, b)
  2. *:在np.array中,表示元素对位相乘;在np.matrix中,表示矩阵乘法。
    np.multiply():在np.array和np.matrix中,都表示元素对位相乘。
    np.matmul(a, b)a @ b是完全等同的:在二维np.array和np.matrix中,表示矩阵乘法。
    np.dot():若处理的是一维数组(np.array),则进行点乘求内积运算;若处理的是二维数组(np.array)/矩阵(np.matrix),则进行矩阵乘法运算。
    np.outer(a, b):计算两个一维数组(np.array)的外积,拿第一个一维数组的元素分别与第二个一维数组的所有元素相乘得到的结果的一行,以此类推,输出满足:out[i, j] = a[i] * b[j]。a和b都是一维数组,若输入不是一维的,会被展平。
  3. 一维数组(np.array)不存在行和列,所以也不存在转置.T
    任何矩阵都是二维的,有行和列。

  • 11
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值