Numpy笔记:安装Numpy+ndarray基本属性+常用方法+索引和切片+广播+轴+范数

Numpy
Python库,用于数组快速操作的各种API

  • 支持常见的数组和矩阵操作
  • ndarray处理多维数组

安装Numpy

  1. 检查PyCharm的Python运行环境
    • File–>Settings–>Project–>Python Interpreter
    • 检查Python Interpreter环境,例如base
  2. 点击Anaconda Prompt
  3. 切换运行环境到PyCharm设置的运行环境
    • 默认是在base环境,无需切换环境
    • 可输入命令行conda env list检查当前环境
    • 输入命令行conda activate 环境名切换运行环境
  4. 输入以下命令行安装numpy
    • pip install numpy==1.21.6 -i https://mirrors.aliyun.com/pypi/simple/

numpy==1.21.6 需要 Requires-Python >=3.7,❤️.11

  1. 安装成功后,可输入命令行pip list检查安装包

N维数组-ndarray

内存分配

  1. ndarray存储数据,数据与数据的地址是连续的,操作更快
  2. python原生列表是通过寻址查询元素

效率对比

"""
原生数组与numpy数组操作效率对比
"""
import time

import numpy as np

a = [num for num in range(10000000)]

t1 = time.time()
sum_a = sum(a)
t2 = time.time()
print(t2 - t1)
# 4.231211423873901

b = np.array(a)
t3 = time.time()
sum_b = np.sum(b)
t4 = time.time()
print(t4 - t3)
# 0.06466150283813477

ndarray属性

  • 数组维度的元组
    • ndarray.shape
  • 数组元素的类型
    • ndarray.dtype
      • 默认是int32
  • 数组中元素数量
    • ndarray.size
  • 数组维数
    • ndarray.ndim

ndarray.shape

可修改shape属性
shape(一维元素个数, 二维元素个数, 三维元素个数, …)
注意:修改的属性需要根据元素个数设定,如果不计算元素个数,可设定-1,会自动计算当前维度的元素个数(只能设定一个-1)
直接赋值修改

"""
np.array([...]).shape

"""
import numpy as np

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

ndarray.arange()

自动生成数组,参数和python内置函数range类似
arange(起始值, 结束值, 步长)

import numpy as np

# print(np.arange(0, 9))
# [0 1 2 3 4 5 6 7 8]
print(np.arange(0, 10, 2))
# [0 2 4 6 8]

ndarray.reshape()

参数为维度元组
reshape((一维元素个数, 二维元素个数, 三维元素个数, …))

import numpy as np


# print(np.arange(0, 9).reshape((3, -1)))
# [[0 1 2]
#  [3 4 5]
#  [6 7 8]]
# print(np.arange(8).reshape(2, 4))
# [[0 1 2 3]
#  [4 5 6 7]]
# print(np.arange(1000).reshape(5, 5, 5, -1))
# [[[[  0   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  28  29  30  31]
#    [ 32  33  34  35  36  37  38  39]]
#    ...]]
print(np.arange(9).reshape(3, -1, 3))
# [[[0 1 2]]
#
#  [[3 4 5]]
#
#  [[6 7 8]]]

ndarray.dtype

np.int32
np.uint8 无符号整数 0-255
np.object python对象

import numpy as np

# a = np.arange(1, 7).reshape(2, 3)
# a = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.float_)
# print(a.dtype)
# float64

# a = np.array([[1, 2, 3], [4, 5, 6]], dtype=np.str_)
# print(a)
# print(a.dtype)
# [['1' '2' '3']
#  ['4' '5' '6']]
# <U1

# a = np.array([[1, 2, 3], [4, 5, '100']], dtype=np.uint8)
# print(a)
# print(a.dtype)
# [[  1   2   3]
#  [  4   5 100]]
# uint8

# arr = np.array(['python', 'tensorflow', 'scikit-learn', 'numpy'], dtype=np.string_)
# print(arr)
# print(arr.dtype)
# [b'python' b'tensorflow' b'scikit-learn' b'numpy']
# |S12
# 12表示最长字符串元素的个数

a = np.array([[1, 2, 3], [4, 5, 'Anna']
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

饭碗、碗碗香

感谢壮士的慷概解囊!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值