Numpy知识详解之ndarray的创建及属性操作

Numpy知识详解之ndarray的创建及属性操作

1.ndarry的创建方式

(1)使用np.array(可以放任意能够转化的结构,如元组、列表等)方式

# 1.使用np.array(可以放可以任意能够转化的结构,如元组、列表等)方式
arr = np.array([1,2,3,4,5])
print(arr) # 输出结果:[1 2 3 4 5]
print(type(arr)) # 输出结果:

(2)np.range(开始值,结束值,步长),包含开始值,不包括结束值

# 2.np.arange(开始值,结束值,步长) 包含开始值,不包括结束值
arr1 = np.arange(1,6,1)
print(arr1) # 输出结果:[1 2 3 4 5]
print(type(arr1)) # 输出结果:
arr2 = np.arange(1,6,2)
print(arr2) # 输出结果:[1 3 5]

(3)np.zeros(数组元素个数,dtype=“数据类型”) ,创建指定数量和指定数据类型的全0数组

# 3.np.zeros(数组元素个数,dtype="数据类型") 创建指定数量和数据类型的全0数组
arr3 = np.zeros(3,dtype=int)
print(arr3) # 输出结果:[0 0 0]
print(type(arr3)) # 输出结果:
arr4 = np.zeros(3,dtype=float)
print(arr4) # 输出结果:[0. 0. 0.]

(4)np.ones(数组元素个数,dtype=“数据类型”),创建指定数量和指定数据类型的全1数组

# 4.np.ones(数组元素个数,dtype="数据类型") 创建指定数量和数据类型的全1数组
arr5 = np.ones(3,dtype=int)
print(arr5) # 输出结果:[1 1 1]
print(type(arr5)) # 输出结果:
arr6 = np.ones(3,dtype=float)
print(arr6) # 输出结果:[1. 1. 1.]

(5)np.zeros_like(a) 创建一个和a数组相同类型的全0数组

# 5.np.zeros_like(a)  创建一个和a数组相同维度和数据类型的全0数组
arr7 = np.zeros_like(arr4)
print(arr7) # 输出结果:[0. 0. 0.]
print(type(arr7)) # 输出结果:

(6)np.ones_like(a) 创建一个和a数组相同类型的全1数组

# 6.np.ones_like(a)  创建一个和a数组相同维度和数据类型的全1数组
arr8 = np.ones_like(arr7)
print(arr8) # 输出结果:[1. 1. 1.]
print(type(arr8)) # 输出结果:

2.ndarray属性基本操作

(1)np.ndarray.shape 数组的维度

# 1.np.ndarray.shape 数组的维度
# 二维数组
arr9 = np.array([[1,2,3,4,5],
                [1,2,3,4,5]])
shape = arr9.shape
print(arr9) # 输出结果:[[1 2 3 4 5]
            #         [1 2 3 4 5]]

print(shape) # 输出结果:(2,5) 维度为2行5列

# 注意:shape属性可以通过赋值操作改变,但是改变的shape属性需要保持数组原有的元素能够均匀分配
arr9.shape=(1,10) # 把数组维度改变成1列10行
# arr9.shape=(1,9) # 错误写法:数组原有元素共有10个,而改变数组维度为1行9列,不符合原有数组原有元素总数量
print(arr9) # 输出结果:[[1 2 3 4 5 1 2 3 4 5]]

(2)np.ndarray.size 数组元素的个数

# 2.np.ndarray.size 数组元素的个数
arr10 = np.zeros(10)
size = arr10.size
print(arr10) # 输出结果:[0. 0. 0. 0. 0. 0. 0. 0. 0. 0.]
print(size) # 输出结果:10
# 注意:np.ndarray.size和len()的区别:一维数组中,两者结果相同,二维数组及以上数组中,size表示的是元素的总个数,len()表示最外层数组所包含的对象个数
# 一维数组
print(size) # 输出结果:10
print(len(arr10))# 输出结果:10
arr11 = np.array([[1,2,3,4,5],
                [1,2,3,4,5]])
# 二维数组
size1 = arr11.size
print(size1) # 输出结果:10
print(len(arr11)) # 输出结果:2

(3)np.ndarray.dtype 数组元素的类型

# 3.np.ndarray.dtype 数组元素的类型
arr12 = np.ones(10)
dtype = arr12.dtype
print(arr12) # 输出结果:[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
print(dtype) # 输出结果:float64
arr13 = np.ones(10,dtype=int)
dtype1 = arr13.dtype
print(arr13)  # 输出结果:[1 1 1 1 1 1 1 1 1 1]
print(dtype1) # 输出结果:int32

# 注意:可以通过np.ndarray.astype(元素类型)进行元素数据类型转换,但是不能够通过赋值操作进行元素类型转换
new_arr13= arr13.astype(float)
print(new_arr13) # 输出结果:[1. 1. 1. 1. 1. 1. 1. 1. 1. 1.]
print(new_arr13.dtype) # 输出结果:float64
# new_arr13.dtype=float # 错误写法

(4)np.ndarray[…,页号,行号,列号] 索引下表从0开始,到数组长度-1结束

# 4.np.ndarray[...,页号,行号,列号]   索引下表从0开始,到数组长度-1结束
# 一维数组
arr14 = np.array([1,2,3,4,5,6])
print(arr14.shape) # 输出结果:(6,)
print(arr14[3]) # 输出结果:4
# 二维数组
arr15 = np.array([[1,2,3,4,5,6],
                [1,2,3,4,5,6]])
print(arr15.shape) # 输出结果:(2, 6)
print(arr15[0]) # 输出结果:[1 2 3 4 5 6]
print(arr15[0][1]) # 输出结果:2
# 三维数组
arr16 = np.arange(1,28,1)
arr16.shape=(3,3,3) # 改变数组维度为3维
print(arr16) # 输出结果:    [[[ 1  2  3]
                        #    [ 4  5  6]
                        #    [ 7  8  9]]
                        #   [[10 11 12]
                        #    [13 14 15]
                        #    [16 17 18]]
                        #   [[19 20 21]
                        #    [22 23 24]
                        #   [25 26 27]]]
print(arr16.shape) # 输出结果:(3, 3, 3)
print(arr16[0])   # 输出结果:   [[1 2 3]
                  #             [4 5 6]
                  #             [7 8 9]]

print(arr16[0][1]) # 输出结果:[4 5 6]
print(arr16[0][0][1]) # 输出结果:2

你可能感兴趣的:(python,python,numpy,数据分析)