numpy数组 ndarray对象基本知识

一、基本概念

1. NumPy中的 ndarray 是一个多维数组对象,该对象由两部分组成实际的数据以及描述这些数据的元数据,大部分的数组操作仅仅修改元数据部分,而不改变底层的实际数据
2. NumPy数组一般是同质的(但有一种特殊的数组类型例外,它是异质的),即所有元素的类型必须一致
3. Numpy数组下标是从0开始的

二、创建一维数组

array([元素1、元素2、….、元素N])

# coding=utf-8
import numpy as np
arr1 = np.array([1,2,3,4])

[1 2 3 4]

可以使用arrange(n)生成0(包含)到n(不包含)的数字的 一维数组(ndarray)

# coding=utf-8
import numpy as np
arr1=np.arange(10)
type(arr1)

[0 1 2 3 4 5 6 7 8 9]
type ‘numpy.ndarray’

三、创建多维数组

创建一个3*3的数组

# coding = utf-8
import numpy as np
arr1 = np.array([np.arange(3),np.arange(3),np.arange(3)])

[[0 1 2]
[0 1 2]
[0 1 2]]

# coding = utf-8
import numpy as np
arr1 = np.array([["a","b","c"],["d","e","f"],["g","h","i"]])

[
[‘a’ ‘b’ ‘c’]
[‘d’ ‘e’ ‘f’]
[‘g’ ‘h’ ‘i’]
]

四、更换数组维度

1.通过修改数组的shape属性,在保持数组元素个数不变的情况下,改变数组每个轴的长度

# coding=utf-8
import numpy as np
arr1=np.arange(10)
print arr1
#变成2*5的数组
arr1.shape=2,5 
print arr1

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

2.使用数组的reshape方法,可以创建一个改变了尺寸的新数组,原数组的shape保持不变

# coding=utf-8
import numpy as np
arr1=np.arange(10)
print arr1
#生成一个新2*5的数组,原数组不为变
arr1.reshape(2,5)
print arr1
arr2 = arr1.reshape(2,5)
print arr2
#数组arry1和arry2其实共享数据存储内存区域,因此修改其中任意一个数组的元素都会同时修改另外一个数组的内容
arr1[0]= 10
print arr2
print arr1

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

3. 使用flatten或ravel展平数组
这两个方法都不会改变原有数组

# coding=utf-8
import numpy as np
arr1=np.arange(10).reshape(2,5)
print arr1
#用 ravel 函数来展平(转成一维数组)
print arr1.ravel()
#原有数组arr1并没有变化
print arr1
#也可使用 flatten,但 flatten 函数会请求分配内存来保存结果,而ravle只是用来展现视图
print arr1.flatten()
#同样原有数组arr1也没有变化
print arr1

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

4.使用transpose方法来转置矩阵

# coding=utf-8
import numpy as np
arr1=np.arange(10).reshape(2,5)
print arr1
print arr1.transpose()

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

五、获取数组元素类型

使用数组的dtype属性可获取到ndarray数组的元素类型

# coding=utf-8
import numpy as np
arr1 = np.arange(10)
print arr1.dtype

int32 #如果是64位机器则是int64

六、获取数组维度

使用数组的shape属性可获取到ndarray数组的维度(大小)。数组的 shape 属性返回一个元组(tuple) ,元组中的元素即为NumPy数组每一个维度上的大小。

# coding=utf-8
import numpy as np
arr1 = np.arange(10).reshape(2,5)
print arr1.shape

(2,5)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
NumPy是Python中用于科学计算的重要库之一,它提供了高效的多维数组对象ndarray,以及对数组进行快速操作的函数和方法。在NumPy中,数组的计算是基于元素的,也就是说,对数组中的每个元素进行操作。 下面介绍一些NumPy数组计算的基础知识: 1. 创建数组 使用numpy.array()函数可以创建一维或多维数组,例如: ``` python import numpy as np a = np.array([1, 2, 3]) # 创建一维数组 b = np.array([[1, 2], [3, 4]]) # 创建二维数组 ``` 2. 数组操作 数组的操作包括索引、切片、形状操作等。例如: ``` python c = b[1, :] # 取二维数组b的第二行 d = b[:, 1] # 取二维数组b的第二列 e = b.reshape(1, 4) # 将二维数组b转化为一维数组 ``` 3. 数组计算 NumPy支持数组与标量、数组之间的加减乘除等基本计算操作,并且进行这些操作时遵循广播规则,例如: ``` python f = a + 1 # 数组a中的每个元素都加1 g = a * b # 数组a与二维数组b的每个元素相乘 ``` 4. 数学函数 NumPy中还提供了许多数学函数,例如求和、平均值、标准差、方差等,这些函数都可以对数组进行操作,例如: ``` python h = np.sum(a) # 计算数组a的和 i = np.mean(b) # 计算二维数组b的平均值 j = np.std(a) # 计算数组a的标准差 k = np.var(b) # 计算二维数组b的方差 ``` 这些都是NumPy数组计算的基础知识,掌握了这些知识之后,可以更加高效地进行科学计算。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值