hash mysql安装 typora 智慧树 oracle authentication flask dom cookies electron ldap Vanilla JS 后台管理页面模板 在线考试系统代码 jq延时 solidworks图库 mac版的matlab好用吗 python数据库 python的数据类型 python中get函数 python对象 python循环语句 python函数参数 java中的对象 java基本类型 java文件流 java设置 java接口怎么写 java基础代码 java时间格式 java字符串格式化 java的集合 java小程序 0x0000004e 视频解析软件 mp4剪切合并大师 sendto函数 海蜘蛛软路由 qq魔法卡片登陆 fireworks序列号
当前位置: 首页 > 学习教程  > python

python数组常见操作-NumPy

2021/2/8 12:15:06 文章标签: 测试文章如有侵权请发送至邮箱809451989@qq.com投诉后文章立即删除

1.一维数组的切片和索引 1.1 定义数组,通过下标选择数组的部分元素 import numpy as np anp.arange(9) a1a[2:7] #选择部分元素 a2a[:6:2]#下标0-6,隔两个 a3a[::-1]#反转数组 print(a1) print(a2) print(a3)结果如下 [2 3 4 5 6] [0 2 4] [8 7 6 5 4 …

1.一维数组的切片和索引
1.1 定义数组,通过下标选择数组的部分元素

import numpy as np
a=np.arange(9)
a1=a[2:7] #选择部分元素
a2=a[:6:2]#下标0-6,隔两个
a3=a[::-1]#反转数组
print(a1)
print(a2)
print(a3)

结果如下

[2 3 4 5 6]
[0 2 4]
[8 7 6 5 4 3 2 1 0]

1.2处理数组形状

a=np.arange(9).reshape(3,3)
b=a*2
print(a)
print(b)
# 水平叠加
np.hstack((a,b))
# concatenate同样可以
np.concatenate((a,b),axis=1)

array([[ 0,  1,  2,  0,  2,  4],
       [ 3,  4,  5,  6,  8, 10],
       [ 6,  7,  8, 12, 14, 16]])
# 垂直叠加
np.vstack((a,b))
# concatenate同样可以
np.concatenate((a,b),axis=0)

array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 0,  2,  4],
       [ 6,  8, 10],
       [12, 14, 16]])
# 深度叠加
np.dstack((a,b))

array([[[ 0,  0],
        [ 1,  2],
        [ 2,  4]],

       [[ 3,  6],
        [ 4,  8],
        [ 5, 10]],

       [[ 6, 12],
        [ 7, 14],
        [ 8, 16]]])
#列式堆叠
oned=np.arange(2)
oned

array([0, 1])

twice_oned=2*oned
twice_oned

array([0, 2])

np.column_stack((oned,twice_oned))

array([[0, 0],
       [1, 2]])
       
np.column_stack((a,b))

array([[ 0,  1,  2,  0,  2,  4],
       [ 3,  4,  5,  6,  8, 10],
       [ 6,  7,  8, 12, 14, 16]])
# 行式堆叠
np.row_stack((a,b))

array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 0,  2,  4],
       [ 6,  8, 10],
       [12, 14, 16]])

1.3拆分NumPy数组

# 横向拆分
np.hsplit(a,3)
# 或者用split
np.split(a,3,axis=1)

[array([[0],
        [3],
        [6]]),
 array([[1],
        [4],
        [7]]),
 array([[2],
        [5],
        [8]])]
# 纵向拆分
np.vsplit(a,3)
# 或者用split
np.split(a,3,axis=0)

[array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]
# 深度拆分
c=np.arange(27).reshape(3,3,3)
np.dsplit(c,3)

[array([[[ 0],
         [ 3],
         [ 6]],
 
        [[ 9],
         [12],
         [15]],
 
        [[18],
         [21],
         [24]]]),
 array([[[ 1],
         [ 4],
         [ 7]],
 
        [[10],
         [13],
         [16]],
 
        [[19],
         [22],
         [25]]]),
 array([[[ 2],
         [ 5],
         [ 8]],
 
        [[11],
         [14],
         [17]],
 
        [[20],
         [23],
         [26]]])]

2.NumPy数组的属性

b=np.arange(24).reshape(2,12)
# ndim存储的是维度的数量
print(b.ndim)
# siez用来保存元素的数量
print(b.size)
# itemsize可以返回数组种各个元素所占用的字节数
print(b.itemsize)
# nbytes为tiemsize和size属性值之积
print(b.nbytes)

2
24
4
96

3.数组的转换

b=np.array([1.j+1,2.j+3])
array([1.+1.j, 3.+2.j])

# 使用tolist函数可以将NumPy数组转换成python列表
 print(b.tolist())
 [(1+1j), (3+2j)]
# astype函数将数组元素转换成指定类型
b.astype(int)
array([1, 3])

b.astype('complex')
array([1.+1.j, 3.+2.j])

本文链接: http://www.dtmao.cc/news_show_2000319.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?