numpy

import numpy as np

属性

ndim
shape
size

创建array——numpy.ndarray

函数含义
np.array()创建一个numpy.ndarray类型的数组
np.zeros(shape)返回一个指定shape的,元素全为0的numpy.ndarray类型的数组
np.arange(start, stop, step)返回一个 以step为步长从start开始到end前结束 (左闭右开)的numpy.ndarray类型的数组
np.ones(shape)返回一个指定shape的,元素全为1的numpy.ndarray类型的数组
np.empty(shape)返回一个指定shape的numpy.ndarray类型的数组,其中的元素未初始化
np.linspace(start, stop, num, endpoint, retstep)返回一个长度为num的数组,数组以start开始,可能以stop结束,其中的元素均匀分布

np.array()

import numpy as np

a = np.array([1, 2, 3])
print(type(a)) # <class 'numpy.ndarray'>
print(a) # [1 2 3]

np.zeros(shape)

shape : int or tuple of ints

import numpy as np

a = np.zeros((3,4))
print(type(a))
print(a)

在这里插入图片描述

np.ones(shape)

np.arange(start, stop, step, dtype)

  • Return evenly spaced values within a given interval.
  • dtype is the type of the output array.可以被指定
import numpy as np

a = np.arange(0, 24, 2).reshape((3, 4))
print(type(a))
print(a)

在这里插入图片描述

np.empty(shape)

Return a new array of given shape and type, without initializing entries.

import numpy as np

a = np.empty((2,3))
print(type(a))
print(a)

在这里插入图片描述

np.linspace(start, stop, num=50, endpoint=True, retstep=False)

start:

  • 以start开始

num:

  • 表示本数组有多少数,默认是50

endpoint:

  • True(默认):表示以stop结束
  • False:表示以 [(stop - start)/num]*(num - 1) 结束

retstep:

  • False(默认):表示np.linspace()返回的结果是个array
  • True:表示np.linspace()的返回结果是个tuple,包含(array, step)
import numpy as np

a = np.linspace(0, 20, 20, retstep= True)
print(type(a))
print(a)

在这里插入图片描述

numpy的其他函数

函数含义
np.sin(arry)、cos(arry)、tan(arry)求 arry 中每个元素的三角函数,其中元素的数值为弧长值
np.dot(a, b)得到数组(又称向量)的内积,结果是一个数
np.sum(a, axis)求和,axis表示从哪个方向求
np.min()、np.max()、np.mean()、np.average()参照np.sum(a, axis),其中mean、average结果差不多
np.median(a, axis)求中位数
np.cumsum(a, axis)挨个加,并得到结果,详见例子
np.nonzero(a)返回非0的下标
np.sort()
np.clip(a, a_min, a_max)相当于一个过滤+修改器,将不在(a_min, a_max)的改成a_min,或 a_max
np.transpose(a)或 a.T转置

np.sin()、cos()、tan()

sin(1)得到的是弧长为1 的sin值

import numpy as np

a = np.linspace(1, 10, num= 10)
b = np.sin(a)
print(type(b))
print(b)

在这里插入图片描述


np.dot(a, b)

得到内积,是一个数字

import numpy as np

a = np.linspace(1, 10, num= 10)
b = np.arange(4, 14)
c = np.dot(a, b)
print(type(c))
print(c)

在这里插入图片描述

np.sum(a, axis)

import numpy as np

a = np.linspace(1, 12, num=12).reshape((3, 4))
print(a)
print(np.sum(a))
print(np.sum(a, axis=0))  # 求垂直方向的和
print(np.sum(a, axis=1))  # 求水平方向的和

在这里插入图片描述

np.min()、np.max()、np.mean()、np.average()

np.mean():

Compute the arithmetic mean along the specified axis.

np.average():

Compute the weighted average along the specified axis.

并且这两个不在同一个模块中

np.median(a, axis)

这个函数会先排序,然后再找中位数
中位数是:

  • 总长为奇时:中间的数
  • 总长为偶时:中间两个数的均值
import numpy as np

a = np.linspace(1, 12, num=12)
print(np.median(a))
b = np.linspace(1, 11, num=11)
print(np.median(b))

在这里插入图片描述

np.cumsum(a, axis)

Return the cumulative sum of the elements along a given axis.
返回沿给定轴的元素的累积和。

import numpy as np

a = np.arange(2,11).reshape(3,3)
print(a)
print(np.cumsum(a)) # [ 2  5  9 14 20 27 35 44 54]

在这里插入图片描述

np.nonzero(a)

Return the indices of the elements that are non-zero.
Returns a tuple of arrays, one for each dimension of a,containing the indices of the non-zero elements in that dimension.

import numpy as np

a = np.arange(2,11).reshape(3,3)
print(a)
print(np.nonzero(a)) # (array([0, 0, 0, 1, 1, 1, 2, 2, 2], dtype=int64), array([0, 1, 2, 0, 1, 2, 0, 1, 2], dtype=int64))

在这里插入图片描述

np.sort()


np.clip(a, a_min, a_max)

import numpy as np

a = np.arange(2, 11).reshape(3, 3)
print(np.clip(a, 5, 9)) # <5的数全改成5,>9的数全改成9,5<x<9的数不变

在这里插入图片描述

np.transpose(a),与a.T一样

import numpy as np

a = np.arange(2,11).reshape(3,3)
print(a)
print(np.transpose(a)) # 转置
print(a.T) # 转置

数组拼接

函数含义
np.vstack(tup)、np.hstack(tup)将tuple内的所有数组按照vertical、horizontal 方向拼接
np.concatenate(a_tuple, axis=0)将a_tuple内的数组按照某个方向拼接
np.split(ary,indices_or_sections,axis)对数组按照某方向均匀分割成indices_or_sections段
np.array_split(ary, indices_or_sections, axis)实现不均匀分割

np.vstack(tup)、np.hstack(tup)

np.vstack((a, b)):

Stack arrays in sequence vertically

np.hstack((a, b)):

Stack arrays in sequence horizontally

import numpy as np

a = np.array([1, 2, 3])
b = np.array([7, 8, 9])
c = np.vstack((a, b)) # 在垂直方向上拼接
print(c)
print(np.hstack((a, b))) # 在水平方向上拼接

在这里插入图片描述

np.concatenate(a_tuple, axis=0)

import numpy as np

a = np.array([1, 2, 3])[np.newaxis,:]
b = np.array([7, 8, 9])[np.newaxis,:]
c = np.concatenate((a, b), axis = 0)
print(c)

在这里插入图片描述

np.split(ary,indices_or_sections,axis=0),对数组的均匀分割

import numpy as np

a = np.arange(2,14).reshape(3,4)
print(a)
print(np.split(a, 3, axis= 0))

在这里插入图片描述

indices_or_sections:是要把ary均匀的切割成多少段,不能均匀切割的话会报错
例如报错:三行无法均匀分割成两行

import numpy as np

a = np.arange(2,14).reshape(3,4)
print(a)
print(np.split(a, 2, axis= 0)) # ValueError: array split does not result in an equal division 三行无法均匀分割成两行

np.array_split(ary, indices_or_sections, axis=0),实现不均匀分割

import numpy as np

a = np.arange(2, 14).reshape(3, 7)
print(a)
print(np.array_split(a, 3, axis=1))
print(np.array_split(a, 2, axis=0))

可以看出不均匀分割的原则:

  • 最长的几个是(7\3+1)
  • 剩下几个是是 (7\3)
    在这里插入图片描述

numpy的一些属性

属性含义
np.random
np.newaxis

np.random

a = np.random.random((3,4))
print(a)

在这里插入图片描述

np.newaxis

不大懂,知道有这么回事就行

import numpy as np

a = np.array([1, 2, 3])
print(a)
b = a[:, np.newaxis]
print(b)
c = a[np.newaxis, :]

在这里插入图片描述

copy,深浅克隆(这个方法与builtins.py里的copy方法不一样)

import numpy as np

a = np.arange(2, 23).reshape(3, 7)
b = a.copy() # 深拷贝
c = a[...] # 不知道
d = a # 内存地址一样
a[0][0] = 11
print(b) # 不会改变
print(c) # 会改变
print(c is a) # False
print(d) # 会改变
print(d is a) # True
print(id(d) == id(a)) # True

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值