numpy数据类型操作和切片操作(一维和多维)

代码示例:

import numpy as np

#数据类型操作相关
my_np1 = np.array([[1,2,3,4],[5,6,7,8]],dtype=np.int32)
print(my_np1.itemsize)    #返回数组中每个元素的字节单位长度,打印4
print(my_np1.dtype)    # 获取数据类型,打印int32
my_np1_new = my_np1.astype(np.float)    #更改数据类型
print(my_np1_new.dtype)    #打印float64

#一维数组切片
my_np2 = np.arange(18)
#冒号分隔切片参数 start:stop:step 来进行切片操作。
print(my_np2[1:10:2])    #打印[1 3 5 7 9]
#如果只放置一个参数,将返回与该索引相对应的单个元素,支持负数索引
print(my_np2[16])    #打印16

#多维数组切片
my_np3 = np.arange(18).reshape(3,6)
#取一行
print(my_np3[1])    #取一行,打印[ 6  7  8  9 10 11]
print(my_np3[1,])    #取一行,打印[ 6  7  8  9 10 11]
print(my_np3[1,:])    #取一行,打印[ 6  7  8  9 10 11]
#取连续多行
print(my_np3[1:])   
'''
取连续的多行,打印:
[[ 6  7  8  9 10 11]
 [12 13 14 15 16 17]]
'''
print(my_np3[1:3,:])    #取连续的多行
'''
取连续的多行,打印:
[[ 6  7  8  9 10 11]
 [12 13 14 15 16 17]]
'''
#取不连续多行
print(my_np3[[0,2]])
'''
取不连续的多行
[[ 0  1  2  3  4  5]
 [12 13 14 15 16 17]]
'''
print(my_np3[[0,2],:])
'''
取不连续的多行
[[ 0  1  2  3  4  5]
 [12 13 14 15 16 17]]
'''
#取列
print(my_np3[:,1])# 取一列,打印[ 1  7 13]
print(my_np3[:,1:])
'''
连续的多列,打印:
[[ 1  2  3  4  5]
 [ 7  8  9 10 11]
 [13 14 15 16 17]]
'''
print(my_np3[:,[0,2]])
'''
 取不连续的多列
[[ 0  2]
 [ 6  8]
 [12 14]]
'''
print(my_np3[1,2])# 取某一个值,二行三列,打印8
print(my_np3[[0,1,1],[0,1,2]])# 取多个不连续的值,[[行,行。。。],[列,列。。。]],打印[0 7 8]

猜你喜欢

转载自blog.csdn.net/caoxinjian423/article/details/111993630