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

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

1.ndarry的创建方式

import numpy as np
# 1.使用np.array(可以放可以任意能够转化的结构,如元组、列表等)方式
arr = np.array([1,2,3,4,5])
print(arr) # 输出结果:[1 2 3 4 5]
print(type(arr)) # 输出结果:<class 'numpy.ndarray'>
# 2.np.arange(开始值,结束值,步长) 包含开始值,不包括结束值
arr1 = np.arange(1,6,1)
print(arr1) # 输出结果:[1 2 3 4 5]
print(type(arr1)) # 输出结果:<class 'numpy.ndarray'>
arr2 = np.arange(1,6,2)
print(arr2) # 输出结果:[1 3 5]

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

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

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

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

2.ndarray属性基本操作

# 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 数组元素的个数
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 数组元素的类型
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结束
# 一维数组
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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
numpy.ndarrayndarray是同一个概念,都是指NumPy库中的多维数组对象。\[1\] \[3\] NumPy是一个用于科学计算的Python库,它提供了高性能的多维数组对象以及丰富的数值计算方法和功能。ndarrayNumPy库中用于表示多维数组的数据类型,它可以存储相同类型的数据,并且支持丰富的数值计算操作,如矩阵运算、图像处理等。\[1\] \[3\] 在使用NumPy库时,我们可以使用import语句导入NumPy库,并使用np来表示它。然后,我们可以使用np.array()函数来创建一个numpy.ndarrayndarray对象,该对象可以存储多维数组数据。\[1\] \[3\] 总结来说,numpy.ndarrayndarray是同一个概念,都是指NumPy库中的多维数组对象,用于存储相同类型的数据并支持丰富的数值计算操作。 #### 引用[.reference_title] - *1* [NDArraynumpy.ndarray 互相转换](https://blog.csdn.net/xiaotao_1/article/details/79594802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [48_Python列表和数组与numpy.ndarray的区别和使用方法](https://blog.csdn.net/qq_18351157/article/details/121414780)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值