Python NumPy库安装使用笔记

Jun 06, 2016 am 11:16 AM
numpyライブラリ python

1. NumPy安装
使用pip包管理工具进行安装

代码如下:


$ sudo pip install numpy


使用pip包管理工具安装ipython(交互式shell工具)

代码如下:


$ sudo pip instlal ipython
$ ipython --pylab  #pylab模式下, 会自动导入SciPy, NumPy, Matplotlib模块


2. NumPy基础

2.1. NumPy数组对象

具体解释可以看每一行代码后的解释和输出

代码如下:


In [1]: a = arange(5)  # 创建数据
In [2]: a.dtype
Out[2]: dtype('int64')  # 创建数组的数据类型
In [3]: a.shape  # 数组的维度, 输出为tuple
Out[3]: (5,)
In [6]: m = array([[1, 2], [3, 4]])  # array将list转换为NumPy数组对象
In [7]: m  # 创建多维数组
Out[7]:
array([[1, 2],
       [3, 4]])
In [10]: m.shape  # 维度为2 * 2
Out[10]: (2, 2)
In [14]: m[0, 0]  # 访问多维数组中特定位置的元素, 下标从0开始
Out[14]: 1
In [15]: m[0, 1]
Out[15]: 2

2.2. 数组的索引和切片

代码如下:


In [16]: a[2: 4]  # 切片操作类似与Python中list的切片操作
Out[16]: array([2, 3])
In [18]: a[2 : 5: 2]  # 切片步长为2
Out[18]: array([2, 4])
In [19]: a[ : : -1]  # 翻转数组
Out[19]: array([4, 3, 2, 1, 0])
In [20]: b = arange(24).reshape(2, 3, 4)  # 修改数组的维度
In [21]: b.shape
Out[21]: (2, 3, 4)
In [22]: b  # 打印数组
Out[22]:
array([[[ 0,  1,  2,  3],
        [ 4,  5,  6,  7],
        [ 8,  9, 10, 11]],
       [[12, 13, 14, 15],
        [16, 17, 18, 19],
        [20, 21, 22, 23]]])
In [23]: b[1, 2, 3]  # 选取特定元素
Out[23]: 23
In [24]: b[ : , 0, 0]  # 忽略某个下标可以用冒号代替
Out[24]: array([ 0, 12])
In [23]: b[1, 2, 3]
Out[23]: 23
In [24]: b[ : , 0, 0]  # 忽略多个下标可以使用省略号代替
Out[24]: array([ 0, 12])
In [26]: b.ravel()  # 数组的展平操作
Out[26]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23])
In [27]: b.flatten()  # 与revel功能相同, 这个函数会请求分配内存来保存结果
Out[27]:
array([ 0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 10, 11, 12, 13, 14, 15, 16,
       17, 18, 19, 20, 21, 22, 23])
In [30]: b.shape = (6, 4)  # 可以直接对shape属性赋值元组来设置维度
In [31]: b
Out[31]:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])
In [30]: b.shape = (6, 4)  # 矩阵的转置
In [31]: b
Out[31]:
array([[ 0,  1,  2,  3],
       [ 4,  5,  6,  7],
       [ 8,  9, 10, 11],
       [12, 13, 14, 15],
       [16, 17, 18, 19],
       [20, 21, 22, 23]])

2.3. 组合数组

代码如下:


In [1]: a = arange(9).reshape(3, 3)  # 生成数组对象并改变维度
In [2]: a
Out[2]:
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
In [3]: b = a * 2  # 对a数组对象所有元素乘2
In [4]: b
Out[4]:
array([[ 0,  2,  4],
       [ 6,  8, 10],
       [12, 14, 16]])
#######################
In [5]: hstack((a, b))  # 水平组合数组a和数组b
Out[5]:
array([[ 0,  1,  2,  0,  2,  4],
       [ 3,  4,  5,  6,  8, 10],
       [ 6,  7,  8, 12, 14, 16]])
      
In [6]: vstack((a, b))  # 垂直组合数组a和数组b
Out[6]:
array([[ 0,  1,  2],
       [ 3,  4,  5],
       [ 6,  7,  8],
       [ 0,  2,  4],
       [ 6,  8, 10],
       [12, 14, 16]])
In [7]: dstack((a, b))  # 深度组合数组, 沿z轴方向层叠组合数组
Out[7]:
array([[[ 0,  0],
        [ 1,  2],
        [ 2,  4]],
       [[ 3,  6],
        [ 4,  8],
        [ 5, 10]],
       [[ 6, 12],
        [ 7, 14],
        [ 8, 16]]])

2.4. 分割数组

代码如下:


In [8]: a
Out[8]:
array([[0, 1, 2],
       [3, 4, 5],
       [6, 7, 8]])
In [9]: hsplit(a, 3)  # 将数组沿水平方向分割成三个相同大小的子数组
Out[9]:
[array([[0],
        [3],
        [6]]),
 array([[1],
        [4],
        [7]]),
 array([[2],
        [5],
        [8]])]
In [10]: vsplit(a, 3)  # 将数组沿垂直方向分割成三个子数组
Out[10]: [array([[0, 1, 2]]), array([[3, 4, 5]]), array([[6, 7, 8]])]

2.5. 数组的属性

代码如下:


In [12]: a.ndim  # 给出数组的尾数或数组的轴数
Out[12]: 2
In [13]: a.size  # 数组中元素的个数
Out[13]: 9
In [14]: a.itemsize  # 数组中元素在内存中所占字节数(int64)
Out[14]: 8
In [15]: a.nbytes  # 数组所占总字节数, size * itemsize
Out[15]: 72
In [18]: a.T  # 和transpose函数一样, 求数组的转置
Out[18]:
array([[0, 3, 6],
       [1, 4, 7],
       [2, 5, 8]])

2.6. 数组的转换

代码如下:


In [19]: a.tolist()  # 将NumPy数组转换成python中的list
Out[19]: [[0, 1, 2], [3, 4, 5], [6, 7, 8]]

3. 常用函数

代码如下:


In [22]: c = eye(2)  # 构建2维单位矩阵
In [23]: c
Out[23]:
array([[ 1.,  0.],
       [ 0.,  1.]])
In [25]: savetxt("eye.txt", c)  # 将矩阵保存到文件中
In [5]: c, v = loadtxt("test.csv", delimiter=",", usecols=(0, 1), unpack=True)  # 分隔符为, usecols为元组表示要获取的字段数据(每一行的第零段和第一段), unpack为True表示拆分存储不同列的数据, 分别存入c, v
In [12]: c
Out[12]: array([ 1.,  4.,  7.])
In [13]: mean(c)  # 计算矩阵c的mean均值
Out[13]: 4.0
In [14]: np.max(c)  # 求数组中的最大值
Out[14]: 7.0
In [15]: np.min(c)  # 求数组中的最小值
Out[15]: 1.0
In [16]: np.ptp(c)  # 返回数组最大值和最小值之间的差值
Out[16]: 6.0
In [18]: numpy.median(c)  # 找到数组中的中位数(中间两个数的平均值)
Out[18]: 4.0
In [19]: numpy.var(c)  # 计算数组的方差
Out[19]: 6.0
In [20]: numpy.diff(c)  # 返回相邻数组元素的差值构成的数组
Out[20]: array([ 3.,  3.])
In [21]: numpy.std(c)  # 计算数组的标准差
Out[21]: 2.4494897427831779
In [22]: numpy.where(c > 3)  # 返回满足条件的数组元素的下标组成的数组
Out[22]: (array([1, 2]),)

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? 携帯電話でXMLをPDFに変換するとき、変換速度は高速ですか? Apr 02, 2025 pm 10:09 PM

Mobile XMLからPDFへの速度は、次の要因に依存します。XML構造の複雑さです。モバイルハードウェア構成変換方法(ライブラリ、アルゴリズム)コードの品質最適化方法(効率的なライブラリ、アルゴリズムの最適化、キャッシュデータ、およびマルチスレッドの利用)。全体として、絶対的な答えはなく、特定の状況に従って最適化する必要があります。

携帯電話のXMLファイルをPDFに変換する方法は? 携帯電話のXMLファイルをPDFに変換する方法は? Apr 02, 2025 pm 10:12 PM

単一のアプリケーションで携帯電話でXMLからPDF変換を直接完了することは不可能です。クラウドサービスを使用する必要があります。クラウドサービスは、2つのステップで達成できます。1。XMLをクラウド内のPDFに変換し、2。携帯電話の変換されたPDFファイルにアクセスまたはダウンロードします。

C言語合計の機能は何ですか? C言語合計の機能は何ですか? Apr 03, 2025 pm 02:21 PM

C言語に組み込みの合計機能はないため、自分で書く必要があります。合計は、配列を通過して要素を蓄積することで達成できます。ループバージョン:合計は、ループとアレイの長さを使用して計算されます。ポインターバージョン:ポインターを使用してアレイ要素を指し示し、効率的な合計が自己概要ポインターを通じて達成されます。アレイバージョンを動的に割り当てます:[アレイ]を動的に割り当ててメモリを自分で管理し、メモリの漏れを防ぐために割り当てられたメモリが解放されます。

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 08:54 PM

XMLをPDFに直接変換するアプリケーションは、2つの根本的に異なる形式であるため、見つかりません。 XMLはデータの保存に使用され、PDFはドキュメントを表示するために使用されます。変換を完了するには、PythonやReportLabなどのプログラミング言語とライブラリを使用して、XMLデータを解析してPDFドキュメントを生成できます。

XMLを写真に変換する方法 XMLを写真に変換する方法 Apr 03, 2025 am 07:39 AM

XMLは、XSLTコンバーターまたは画像ライブラリを使用して画像に変換できます。 XSLTコンバーター:XSLTプロセッサとスタイルシートを使用して、XMLを画像に変換します。画像ライブラリ:PILやImageMagickなどのライブラリを使用して、形状やテキストの描画などのXMLデータから画像を作成します。

XMLを画像に変換するプロセスは何ですか? XMLを画像に変換するプロセスは何ですか? Apr 02, 2025 pm 08:24 PM

XML画像を変換するには、最初にXMLデータ構造を決定し、次に適切なグラフィカルライブラリ(PythonのMatplotlibなど)とメソッドを選択し、データ構造に基づいて視覚化戦略を選択し、データのボリュームと画像形式を検討し、バッチ処理を実行するか、効率的なライブラリを使用して、最終的にPNG、JPEG、またはSVGに応じて保存します。

推奨されるXMLフォーマットツール 推奨されるXMLフォーマットツール Apr 02, 2025 pm 09:03 PM

XMLフォーマットツールは、読みやすさと理解を向上させるために、ルールに従ってコードを入力できます。ツールを選択するときは、カスタマイズ機能、特別な状況の処理、パフォーマンス、使いやすさに注意してください。一般的に使用されるツールタイプには、オンラインツール、IDEプラグイン、コマンドラインツールが含まれます。

XMLをPDFに変換できるモバイルアプリはありますか? XMLをPDFに変換できるモバイルアプリはありますか? Apr 02, 2025 pm 09:45 PM

XML構造が柔軟で多様であるため、すべてのXMLファイルをPDFSに変換できるアプリはありません。 XMLのPDFへのコアは、データ構造をページレイアウトに変換することです。これには、XMLの解析とPDFの生成が必要です。一般的な方法には、ElementTreeなどのPythonライブラリを使用してXMLを解析し、ReportLabライブラリを使用してPDFを生成することが含まれます。複雑なXMLの場合、XSLT変換構造を使用する必要がある場合があります。パフォーマンスを最適化するときは、マルチスレッドまたはマルチプロセスの使用を検討し、適切なライブラリを選択します。

See all articles