Python的Numpy包:array mat

Numpy包:array mat

1、数组 array

1.1 random uniform randint choice

tensor → 输入 → randint ❓

random模块:生成随机数

uniform:浮点数

randint:整数

※rand、randn

np.random.uniform(low, high, size)

随机生成指定范围 [low,high) 的 size 大小的浮点数数组。

np.random.choice(array, size, replace=False)

从array中随机选择出size大小的数组。

np.random.random((3,3))

生成随机的小数多维数组(TBD)

import numpy as np
a = np.random.uniform(0, 1, [2,5])
b = np.random.randint(0, 11, [2,5])
print(a)
print(b)
print(type(a))	# <class 'numpy.ndarray'>
import numpy as np
from collections import Counter
a = np.random.randint(0,2,30)
# print(a)
print(Counter(a))
pos_index = np.where(a == 1)[0]
print(len(pos_index))

n_pos = 10
if len(pos_index) > n_pos:
    disable_index = np.random.choice(pos_index, size=(len(pos_index) - n_pos), replace=False)
    # replace 用来设置是否可以取相同的元素,默认True表示可以取相同数字,False表示必须取不同的数字
    a[disable_index] = -1
pos_index = np.where(a == 1)[0]
print(len(pos_index))

1.2 np.dot(x,y)

向量点积&矩阵乘法

x.dot(y) = np.dot(x,y)

1.3 a[i:j:s]

注意:最后一位指的步幅!!!

  1. s指步幅,缺省取1
  2. s>0,i缺省取0,j缺省取len(a),取出a[i]-a[j-1]的数据
  3. s<0,i缺省取-1,j缺省取-1-len(a),反向取数据
  4. b=a[::-1]:将原向量反向复制

1.4 inf

np.inf :表示+∞,是没有确切的数值的,类型为浮点型

1.5 Counter unique where

np.where(condition) 输出为满足条件的索引,坐标格式为元组tuple,要想直接看到坐标就使用np.where(condition) [0]

TBD

生成只有0和1的随机数组,并统计数组中某个值出现的次数

import numpy as np
from collections import Counter
a = np.random.randint(0,2,10)
print(a)
# 方法一
print(Counter(a))

# 方法二
print(np.unique(a))
for i in np.unique(a):
    print(np.sum(a==i))	

# 方法三
pos_index = np.where(a == 1)[0]
print(pos_index)
print(len(pos_index))

# 如果是tensor的话,方法四
a = torch.from_numpy(a)
num_pos  = (a > 0).sum().float() 
print(num_pos)

1.6 python的数组和矩阵乘法

np.array() np.mat()

数据初始化及相互转换

1、array → mat: np.mat(data),data的格式为array

2、mat → array: data.A,data的格式为mat

import numpy as np
a = np.array([[1,2],[3,4]])
print('a type:{}'.format(type(a)))
b = np.mat([[5,6],[7,8]])
print('b type:{}'.format(type(b)))
c = np.mat(a)
print('c type:{}'.format(type(c)))
d = b.A		# ⭐
print('d type:{}'.format(type(d)))
np.multiply()

1、数组:执行对应位置数据相乘。

2、矩阵:执行对应位置数据相乘。

import numpy as np
a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
c = np.multiply(a, b)
print (c)

a = np.mat(a)
b = np.mat(b)
c = np.multiply(a, b)
print (c)
np.dot()

1、数组:对于秩为1的数组,执行对应位置相乘,然后再相加;对于秩不为1的二维数组,执行矩阵乘法运算。

2、矩阵:执行矩阵乘法运算。

import numpy as np
a = np.array([1,2])
b = np.array([3,4])
c = np.dot(a,b)
print (c)

a = np.array([[1,2],[3,4]])
b = np.array([[5],[6]])
c = np.dot(a,b)
print (c)

a = np.mat(a)
b = np.mat(b)
c = np.dot(a,b)
print (c)
*运算

1、数组:执行对应位置数据相乘。

2、矩阵:执行矩阵乘法运算。

import numpy as np
a = np.array([1,2])
b = np.array([3,4])
c = a*b
print (c)

a = np.array([[1,2],[3,4]])
b = np.array([[5],[6]])
c = a*b
print (c)

a = np.mat(a)
b = np.mat(b)
c = a*b
print (c)

a = np.array([[1,2],[3,4]])
b = np.array([[5,6],[7,8]])
c = a*b
print (c)

a = np.mat(a)
b = np.mat(b)
c = a*b
print (c)

1.7 np.concatenate() np.append()

import numpy as np
a=np.array([1,2,3])
b=np.array([11,22,33])
c=np.array([44,55,66])
d=np.concatenate((a,b,c),axis=0)  # 默认情况下,axis=0可以不写。因为对于一维数组拼接,axis只能取0啊
print(d)
 
a=np.array([[1,2,3],[4,5,6]])
b=np.array([[11,21,31],[7,8,9]])
c=np.concatenate((a,b),axis=0)
print(c)
c=np.concatenate((a,b),axis=1)  #axis=1表示对应行的数组进行拼接
print(c)

TBD

append

u = np.array(list)

u.shape

len(u)

reshape resize

如何生成数组、矩阵?

2、矩阵 mat

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值