2、NumPy数组基本用法

NumPy数组基本用法

*
1、numpy中的数组:
2、创建数组(np.ndarray对象):
3、ndarray常用属性:

+ 3.1 ndarray.dtype:获取数组中数据的数据类型
+ 3.2 ndarray.size:获取数组中总的元素的个数。
+ 3.3 ndarray.ndim:数组的维数。
+ 3.4 ndarray.shape:数组的维度的元组。
+ 3.4 ndarray.itemsize:数组中每个元素占的大小,单位是字节。

(1)Numpy是Python科学计算库,用于快速处理任意维度的数组。
(2)NumPy提供一个N维数组类型ndarray,它描述了相同类型的”items”的集合。
(3)numpy.ndarray支持向量化运算。
(4)NumPy使用c语言写的,底部解除了GIL,其对数组的操作速度不在受python解释器限制。

1、numpy中的数组:

Numpy中的数组的使用跟Python中的列表非常类似。他们之间的区别如下:

(1)一个列表中可以存储多种数据类型,比如a = [1,’a’]是允许的。而数组只能存储同种数据类型。
(2)数组可以是多维的,当多维数组中所有的数据都是数值类型的时候,相当于线性代数中的矩阵,是可以进行相互间的运算的。

2、创建数组(np.ndarray对象):

Numpy经常和数组打交道,因此首先第一步是要学会创建数组。在Numpy中的数组的数据类型叫做ndarray。以下是两种创建的方式:
1、根据python中的列表生成, 注意生成的数组各元素之间没有逗号,列表和张量子之间有逗号。

import numpy as np
a1 = np.array([1, 2, 3, 4])
print(a1)
print(type(a1))

2、使用np.arange生成,其中np.arange的用法类似于Python中的range:

import numpy as np
a2 = np.arange(2, 21, 2)
print(a2)

3、使用np.random生成随机数的数组:

a4 = np.random.randint(0, 10, size=(3, 3))
print(a4)

          [1 7 5]
          [0 5 0]]

4、使用函数生成特殊的数组:

a1 = np.zeros((2,2))
print(a1)

a2 = np.ones((3,2))
print(a2)

a3 = np.full((2,2),8)
print(a3)

a4 = np.eye(3)
print(a4)

3、ndarray常用属性:

3.1 ndarray.dtype:获取数组中数据的数据类型

因为数组中只能存储同一种数据类型,因此可以通过.dtype获取数组中的元素的数据类型.

2、NumPy数组基本用法

Numpy中关于数值的类型比Python内置的多得多,这是因为Numpy为了能高效处理海量数据而设计的。举个例子,比如现在想要存储上百亿的数字,并且这些数字都不超过254(一个字节内),我们就可以将dtype设置为int8,这样就比默认使用int64更能节省内存空间了。
1、默认的数据类型:

import numpy as np
a1 = np.array([1,2,3])
print(a1)
print(a1.dtype)

2、指定dtype:(dtype= )

import numpy as np
a1 = np.array([1,2,3],dtype=np.int64)

print(a1.dtype)

3、修改dtype:通过.astype()方法实现

import numpy as np
a1 = np.array([1,2,3])
print(a1.dtype)

a2 = a1.astype(np.int64)
print(a2.dtype)

3.2 ndarray.size:获取数组中总的元素的个数。

比如有个二维数组:

import numpy as np
a1 = np.array([[1,2,3],[4,5,6]])
print(a1.size)

3.3 ndarray.ndim:数组的维数。

比如:

a1 = np.array([1,2,3])
print(a1.ndim)
a2 = np.array([[1,2,3],[4,5,6]])
print(a2.ndim)
a3 = np.array([[[1,2,3],[4,5,6]],[[7,8,9],[10,11,12]]])
print(a3.ndim)

3.4 ndarray.shape:数组的维度的元组。

比如以下代码

a1 = np.array([1,2,3])
print(a1.shape)

a2 = np.array([[1,2,3],[4,5,6]])
print(a2.shape)

a3 = np.array([
    [
        [1,2,3],
        [4,5,6]
    ],
    [
        [7,8,9],
        [10,11,12]
    ]
 ])
print(a3.shape)

a4 = np.array([1,2,3],[4,5])
print(a4.shape)
print(a4)

另外,还可以通过ndarray.reshape来重新修改数组的维数。示例代码如下:

a1 = np.arange(12)
print(a1)

a2 = a1.reshape((3,4))
print(a2)

a3 = a1.reshape((2,3,2))
print(a3)

a4 = a2.reshape((12,))
print(a4)

a5 = a2.flatten()
print(a5)

注意:reshape并不会修改原来数组本身,而是会将修改后的结果返回。如果想要直接修改数组本身,那么可以使用resize来替代reshape。

3.4 ndarray.itemsize:数组中每个元素占的大小,单位是字节。

比如以下代码:

import numpy as np
a1 = np.array([1,2,3],dtype=np.int32)
print(a1.itemsize)

Original: https://blog.csdn.net/qq_43061415/article/details/123583150
Author: 算法程序员&mlh
Title: 2、NumPy数组基本用法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/763216/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球