| """ |
| 第一层必须是元组 |
| 默认情况下,需要每个元素的数据类型保持一致 |
| 如果每个元素的元素类型不一致,需要分别指定每个元素的类型 |
| 指定元素类的方式: |
| 方式一: |
| np.array(data,dtype="3str,int,3int") |
| 方式二:简写 |
| np.array(data,dtype="U3,i,3i") |
| 字符码 简写 |
| bool ? |
| int8/16/32/64 i1/2/4/8 |
| float8/16/32/64 f1/2/4/8 |
| str U<字符数> |
| datetime64 M8[Y] M8[M] M8[D] M8[h] M8[m] M8[s] |
| 方式三:别名 |
| dtype=[ |
| ('name','U3'), |
| ('sno','i'), |
| ('score','i',3) # 成绩的别名score,类型是int,长度是3 |
| ] |
| """ |
| |
| data = [ |
| ("张三s",1,[89,90,70]), |
| ("李四",2,[99,89,77]), |
| ("王五是",3,[77,99,88]) |
| ] |
| |
| a = np.array(data,dtype="U3,i,3i") |
| print(a) |
| |
| |
| [('张三s', 1, [89, 90, 70]) ('李四', 2, [99, 89, 77]) ('王五是', 3, [77, 99, 88])] |
| |
| |
| for stu in a: |
| for s in stu: |
| print(s) |
| |
| |
| 张三s |
| 1 |
| [89 90 70] |
| 李四 |
| 2 |
| [99 89 77] |
| 王五是 |
| 3 |
| [77 99 88] |
| |
| for stu in a: |
| print("学号:",stu[1]) |
| print("姓名:",stu[0]) |
| print("成绩:") |
| print("语文",stu[2][0],"数学:",stu[2][1],"英语",stu[2][2]) |
| |
| |
| 学号: 1 |
| 姓名: 张三s |
| 成绩: |
| 语文 89 数学: 90 英语 70 |
| 学号: 2 |
| 姓名: 李四 |
| 成绩: |
| 语文 99 数学: 89 英语 77 |
| 学号: 3 |
| 姓名: 王五是 |
| 成绩: |
| 语文 77 数学: 99 英语 88 |
| data = [ |
| ("张三s",1,[89,90,70]), |
| ("李四",2,[99,89,77]), |
| ("王五是",3,[77,99,88]) |
| ] |
| dtype=[ |
| ('name','U3'), |
| ('sno','i'), |
| ('score','i',3) |
| ] |
| a = np.array(data,dtype=dtype) |
| print(a) |
| b = a[0][0] |
| print(b) |
| c = a[0]['name'] |
| print(c) |
| |
| |
| [('张三s', 1, [89, 90, 70]) ('李四', 2, [99, 89, 77]) ('王五是', 3, [77, 99, 88])] |
| 张三s |
| 张三s |
| data = [ |
| "2023", |
| "2023-11", |
| "2023-11-09", |
| "2023-11-09 11:16:15" |
| ] |
| a = np.array(data) |
| |
| b = a.astype("M8[h]") |
| print(b) |
| print(b.dtype) |
| |
| c = b[0]-b[1] |
| print(c) |
| |
| |
| ['2023-01-01T00' '2023-11-01T00' '2023-11-09T00' '2023-11-09T11'] |
| datetime64[h] |
| -7296 hours |
| a = np.arange(20,38) |
| print(a) |
| print(a[2:5]) |
| print(a[:5]) |
| print(a[2:]) |
| print(a[2:10:2]) |
| print(a[::-1]) |
| |
| a.shape = (3,6) |
| print(a) |
| print(a[1:3]) |
| print(a[0,0]) |
| print(a[0][0]) |
| print(a[0,0:3]) |
| print(a[:2,:3]) |
| print(a[:2,2:5]) |
| print(a[:,2:5]) |
output
| [20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37] |
| [22 23 24] |
| [20 21 22 23 24] |
| [22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37] |
| [22 24 26 28] |
| [37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 20] |
| |
| [[20 21 22 23 24 25] |
| [26 27 28 29 30 31] |
| [32 33 34 35 36 37]] |
| [[26 27 28 29 30 31] |
| [32 33 34 35 36 37]] |
| 20 |
| 20 |
| [20 21 22] |
| [[20 21 22] |
| [26 27 28]] |
| [[22 23 24] |
| [28 29 30]] |
| [[22 23 24] |
| [28 29 30] |
| [34 35 36]] |
| a = np.arange(1,11) |
| print(a) |
| a[0] = 10 |
| print(a) |
| a[3:7] = 20 |
| print(a) |
| a[:] = 0 |
| print(a) |
| |
| a[a%2==0] = -1 |
| print(a) |
output
| [ 1 2 3 4 5 6 7 8 9 10] |
| [10 2 3 4 5 6 7 8 9 10] |
| [10 2 3 20 20 20 20 8 9 10] |
| [0 0 0 0 0 0 0 0 0 0] |
| [-1 -1 -1 -1 -1 -1 -1 -1 -1 -1] |
| a = np.arange(1,5) |
| print(a) |
| m = [True,False,True,False] |
| b = a[m] |
| print(b) |
| |
| a = np.arange(1,11) |
| print(a) |
| b = a > 4 |
| print(a[b]) |
| |
| |
| [1 2 3 4] |
| [1 3] |
| |
| [ 1 2 3 4 5 6 7 8 9 10] |
| [ 5 6 7 8 9 10] |
| a = np.arange(1,101) |
| |
| lst = [] |
| for i in a: |
| if(i%3==0): |
| lst.append(i) |
| print(lst) |
| |
| lst = [i for i in a if i%3==0] |
| print(lst) |
| |
| lst = a[a%3==0] |
| print(lst) |
| |
| a = np.arange(1,101) |
| b = (a%3==0) & (a%7==0) |
| print(a[b]) |
output
| [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99] |
| [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36, 39, 42, 45, 48, 51, 54, 57, 60, 63, 66, 69, 72, 75, 78, 81, 84, 87, 90, 93, 96, 99] |
| [ 3 6 9 12 15 18 21 24 27 30 33 36 39 42 45 48 51 54 57 60 63 66 69 72 75 78 81 84 87 90 93 96 99] |
| [21 42 63 84] |
| a = np.arange(1,13).reshape(4,3) |
| b = np.arange(13,19).reshape(2,3) |
| print(a) |
| print(b) |
| # 垂直合并两个数组,参数要是一个元组 |
| c = np.vstack((a,b)) |
| print(c) |
| # 将数组垂直拆分,要能被等分 |
| d = np.vsplit(c,3) # 将c拆分成3份 |
| for d1 in d: |
| print(d1) |
| |
| # 输出打印 |
| [[ 1 2 3] |
| [ 4 5 6] |
| [ 7 8 9] |
| [10 11 12]] |
| |
| [[13 14 15] |
| [16 17 18]] |
| |
| [[ 1 2 3] |
| [ 4 5 6] |
| [ 7 8 9] |
| [10 11 12] |
| [13 14 15] |
| [16 17 18]] |
| |
| [[1 2 3] |
| [4 5 6]] |
| [[ 7 8 9] |
| [10 11 12]] |
| [[13 14 15] |
| [16 17 18]] |
| bj1 = [ |
| ["张三",89,90,78], |
| ["李四",89,90,78], |
| ["王五",89,90,78], |
| ["赵六",89,90,78] |
| ] |
| bj2 = [ |
| ["张三1",89,90,78], |
| ["李四1",89,90,78] |
| ] |
| a1 = np.array(bj1) |
| a2 = np.array(bj2) |
| c = np.vstack((a1,a2)) |
| print(c) |
| print(len(c),c.size) |
output
| [['张三' '89' '90' '78'] |
| ['李四' '89' '90' '78'] |
| ['王五' '89' '90' '78'] |
| ['赵六' '89' '90' '78'] |
| ['张三1' '89' '90' '78'] |
| ['李四1' '89' '90' '78']] |
| 6 24 |
| a1 = np.arange(1,10).reshape(3,3) |
| a2 = np.arange(11,20).reshape(3,3) |
| print(a1) |
| print(a2) |
| |
| c = np.concatenate((a1,a2),axis=1) |
| print(c) |
| |
| d = np.split(c,3,axis=1) |
| for d1 in d: |
| print(d1) |
output
| [[1 2 3] |
| [4 5 6] |
| [7 8 9]] |
| [[11 12 13] |
| [14 15 16] |
| [17 18 19]] |
| |
| [[ 1 2 3 11 12 13] |
| [ 4 5 6 14 15 16] |
| [ 7 8 9 17 18 19]] |
| |
| [[1 2] |
| [4 5] |
| [7 8]] |
| [[ 3 11] |
| [ 6 14] |
| [ 9 17]] |
| [[12 13] |
| [15 16] |
| [18 19]] |
| a = np.arange(1,11) |
| print(a) |
| b = np.sum(a) |
| print(b) |
| b = np.mean(a) |
| print(b) |
| b = np.prod(a) |
| print(b) |
| b = np.max(a) |
| print(b) |
| b = np.argmax(a) |
| print(b) |
| b = np.min(a) |
| print(b) |
| b = np.argmin(a) |
| print(b) |
| b = np.std(a) |
| print(b) |
| b = np.var(a) |
| print(b) |
| b = np.cumsum(a) |
| print(b) |
| b = np.cumprod(a) |
| print(b) |
| b = np.median(a) |
| print(b) |
| |
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 字符编码:从基础到乱码解决
· 提示词工程——AI应用必不可少的技术
2022-11-10 idea使用token