Python的科学计算库NumPy(一)

NumPy(Numerical Python)是Python中最基础、最重要的科学计算库之一,提供了高性能的多维数组(ndarray)对象和大量数学函数,是许多数据科学、机器学习库(如Pandas、SciPy、TensorFlow等)的基础依赖。

1. 创建一个numpy里面的一维数组

import numpy as np

### 通过array方法创建一个ndarray
array1 = np.array([1, 2, 3, 4, 5])
print(array1)
print(type(array1))

### 通过arange方法创建一个ndaaray

# 第一个参数是起始值,第二个参数是最大值,第三个参数是步长
array2 = np.arange(1, 10, 2)
print(array2)
print(type(array2))

# 一个参数是最大值,起始值是0,步长是1
array3 = np.arange(5)
print(array3)
print(type(array3))

# 第一个参数是起始值,第二个参数是最大值,步长默认是1
array4 = np.arange(2, 7)
print(array4)
print(type(array4))

Python的科学计算库NumPy(一)_第1张图片

2. 数组的算术运算

import numpy as np

# ndarray与一个整数的算术运算,会把数组里面每一个元素都与这个整数进行运算
array1 = np.array([1, 2, 3, 4, 5])
array1 += 1
print(array1)

array1 *= 2
print(array1)

array1 = array1 / 2 
print(array1)

print('-----------------------------')
# 一个ndarray与另一个ndarray之间的算术运算,会把两个数组对应位置的元素进行运算
array1 = np.arange(1, 6)
array2 = np.arange(6, 11)
print(array1)
print(array2)

array3 = array1 + array2
print(array3)

# 如果两个数组里面的元素个数不一致,会报错
# ValueError: operands could not be broadcast together with shapes (5,) (10,) 
array1 = np.arange(5)
array2 = np.arange(10)
array3 = array1 + array2
print(array3)

Python的科学计算库NumPy(一)_第2张图片

3. 多维数组

3.1 多维数组要求数组元素的形状(shape)一致
以下几种情况都会报错:
  • 元素个数不匹配
import numpy as np

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

在这里插入图片描述

  • 元素类型不匹配
array1 = np.array([[1, 2, 3, 4, 5], [6, 7, 8,9,[1]]])
print(array1)

在这里插入图片描述

以下情况能创建成功:
  • 元素个数以及类型都一致
array1 = np.array([[1,2], [4,6]])
print(array1)

array2 = np.array([['hi','hello'], ['mary','mark']])
print(array2)
  • 元素个数一致,类型之间可以相互转换, 会自动的向下进行转换
array1 = np.array([[1,2], [4,6.0]])
print(array1)

在这里插入图片描述

3.2 使用 dtype=object 强制存储不同形状数据,但会失去 NumPy 的优化优势
array = np.array([[1, 2], [3, 4, 5]], dtype=object)

print(array)
# 这种操作会报错,从打印的信息看,创建出来的是一维数组,数组里面的元素是list
array += 1

Python的科学计算库NumPy(一)_第3张图片

4. 数组的属性

list = [1,2,3,4,5]
array1 = np.array(list)
array2 = np.array([[4,5,6], [7,8,9]])

# 元素的数据类型 int64
print(array1.dtype)
print(array2.dtype)

# 元素的数据类型占用内存的字节数
print(array1.itemsize)
print(array2.itemsize)


# 数组的形状
print(array1.shape)
print(array2.shape)

# 数组中元素的个数
print(array1.size)
print(array2.size) 

# 数组的维度
print(array1.ndim)
print(array2.ndim)

Python的科学计算库NumPy(一)_第4张图片

你可能感兴趣的:(python,numpy,开发语言)