Python知识点整理21_06_25

zip()函数

和 Python 3.x 版本不同,Python 2.x 版本中的 zip() 函数会直接返回列表,而不是返回 zip 对象。但是,返回的列表或者 zip 对象,其包含的元素(都是元组)是相同的。

my_list = [11,12,13]
my_tuple = (21,22,23)

print([x for x in list(zip(my_list,my_tuple))])
print([x for x in zip(my_list, my_tuple)])
my_dic = {31:2,32:4,33:5}
my_set = {41,42,43,44}
print([x for x in zip(my_dic)])
my_pychar = "python"
my_shechar = "shell"
print([x for x in zip(my_pychar,my_shechar)])

========
[(11, 21), (12, 22), (13, 23)]
[(11, 21), (12, 22), (13, 23)]
[(31,), (32,), (33,)]
[('p', 's'), ('y', 'h'), ('t', 'e'), ('h', 'l'), ('o', 'l')]
my_list = [11,12,13]
my_tuple = (21,22,23)
print(list(zip(my_list,my_tuple)))
==========
[(11, 21),(12, 22),(12, 23)]

关于矩阵转置和逆矩阵

#转置
import numpy as np
np.random.seed(0)
arr = np.random.random((3,4))
print(arr)
print(arr.T)
print(np.transpose(arr))
#逆矩阵
import numpy as np
 
a = np.array([[1, 2], [3, 4]]) # 初始化一个非奇异矩阵(数组)
print(a)
print(type(a))
print(np.linalg.inv(a)) # 对应于MATLAB中 inv() 函数
A = np.matrix(a)
print(type(A))
print(A.I)
a1 = np.mat([[3,4],[2,16]]) 
print(a1)
print(type(a1))

=========
[[1 2]
 [3 4]]
<class 'numpy.ndarray'>
[[-2.   1. ]
 [ 1.5 -0.5]]
<class 'numpy.matrix'>
[[-2.   1. ]
 [ 1.5 -0.5]]
[[ 3  4]
 [ 2 16]]
<class 'numpy.matrix'>

关于三元表达和np.where()

num = [1,2,3,0,1,1,2,3,5,0]
#print(num == True)
arr = [1 if n else 0 for i,n in enumerate(num)]
print(arr)
num = [1,2,3,0,1,1,2,3,5,0]
#print(num == True)
arr = [1 if i[0] else 0 for i in zip(num)]
print(arr)
a = np.arange(10)
b = np.arange(10,20)
print(a)
print(b)
c = np.array([1,0,0,0,1,1,0,0,1,1])
np.where(c, a, b)
===========
[0 1 2 3 4 5 6 7 8 9]
[10 11 12 13 14 15 16 17 18 19]
array([ 0, 11, 12, 13,  4,  5, 16, 17,  8,  9])
out = [x if c else y for c, x, y in zip(c, a, b)]
print(list(zip(c,a,b)))
print(out)
print(np.where(c, 1, -1))
==============
[(1, 0, 10), (0, 1, 11), (0, 2, 12), (0, 3, 13), (1, 4, 14), (1, 5, 15), (0, 6, 16), (0, 7, 17), (1, 8, 18), (1, 9, 19)]
[0, 11, 12, 13, 4, 5, 16, 17, 8, 9]
[ 1 -1 -1 -1  1  1 -1 -1  1  1]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值