Numpy 中文使用者指南 3 2 建立陣列

2021-09-19 09:37:10 字數 2494 閱讀 3746

原文:array creation

譯者:飛龍

另見

陣列建立例程

陣列建立的一般機制有五種:

本節不會涉及複製和連線等擴充套件和轉換現有陣列的方法,也不會涉及建立物件陣列和結構化陣列。這些會在它們自己的章節中講述。

通常,python中排列為陣列結構的數值資料可以通過array()函式來轉換成陣列,典型的例子就是列表和元組。具體使用方法請見array()函式的文件。一些物件也支援陣列的協議,並且可以用這種方法轉換成陣列。辨識乙個物件是否能轉換為陣列,最簡單的方法就是在互動式環境中嘗試這一方法,看看它是否有效(即python之道)。

例如:

>>> x = np.array([2,3,1,0])

>>> x = np.array([2, 3, 1, 0])

>>> x = np.array([[1,2.0],[0,0],(1+1j,3.)]) # note mix of tuple and lists,

and types

>>> x = np.array([[ 1.+0.j, 2.+0.j], [ 0.+0.j, 0.+0.j], [ 1.+1.j, 3.+0.j]])

numpy具有從無到有建立陣列的內建功能:

zeros(shape)將建立乙個填充為0的指定形狀的陣列。

>>> np.zeros((2, 3)) array([[ 0., 0., 0.], [ 0., 0., 0.]])
ones(shape)將建立乙個填充為1的陣列。在其他所有方面都和zeros相同。

arange()將建立有規律的增量值陣列。它的幾種用法請見docstring。這裡給出幾個例子:

>>> np.arange(10)

array([0, 1, 2, 3, 4, 5, 6, 7, 8, 9])

>>> np.arange(2, 10, dtype=np.float)

array([ 2., 3., 4., 5., 6., 7., 8., 9.])

>>> np.arange(2, 3, 0.1)

array([ 2. , 2.1, 2.2, 2.3, 2.4, 2.5, 2.6, 2.7, 2.8, 2.9])

請注意,關於最後乙個用例,有一些使用技巧,請見arrange的docstring。

linspace()將以指定數量的元素建立陣列,並平分開始值和結束值。例如:

>>> np.linspace(1., 4., 6)

array([ 1. , 1.6, 2.2, 2.8, 3.4, 4. ])

這些建立函式的好處是,可以保證元素個數、起始點和結束點,arange()一般不會指定任意的起始值、結束值和步長。

indices()將建立陣列的集合(用一維陣列來模擬高維陣列),每一維都有表示它的變數。乙個例子說明比口頭描述好得多:

>>> np.indices((3,3))

array([[[0, 0, 0], [1, 1, 1], [2, 2, 2]], [[0, 1, 2], [0, 1, 2], [0, 1, 2]]])

計算規則網格上的高維函式時,這會非常有用。

這大概是大陣列建立的最常見情況。當然,細節取決於磁碟上的資料格式,所以這一節只能給出如何處理各種格式的一般建議。

各個領域都有陣列資料的標準格式。以下列出了用於讀取和返回numpy陣列的已知python庫(也有其它的庫可以讀取陣列並轉換為numpy陣列,所以也請看一下最後一節)

hdf5: pytables

fits: pyfits

一些格式不能直接讀取,但是不難將其轉換為類似pil庫(能夠讀寫許多影象格式,例如jpg、png以及其它)所支援的格式。

逗號分隔值檔案(csv)被廣泛使用(可以被類似excel的一些程式匯入匯出)。有一些在python中讀取這些檔案的方法,例如python和pylab(matplotlib的一部分)中的函式。

更通用的ascii檔案可以使用scipy的io包來讀取。

有多種方法可以使用。如果檔案有乙個相對簡單的格式,那麼你可以寫乙個簡單的i/o庫並使用numpy fromfile()tofile()方法直接讀寫numpy陣列(注意位元組順序!)。如果有乙個不錯的c/c++庫可以用於讀取資料,則可以用各種技巧把它封裝一下,雖然這可能要耗費一些工作量,也需要更多高階的知識來和c/c++互動。

有一些庫可以用於生成特殊用途的陣列,這樣的庫不可能全部列舉出來。最常見的用法是使用許多陣列生成函式來產生帶有隨機值的陣列,以及使用一些生成特殊矩陣(如對角線)的功能函式。

Numpy 中文使用者指南 1 安裝

譯者 飛龍 原文 what is numpy?numpy是python中用於科學計算的基礎包。它是乙個python庫,提供多維陣列物件,各種派生的物件 如掩碼陣列和矩陣 以及陣列快速操作的各種各樣的例程,包括數學 邏輯 圖形操作,排序 選擇 i o 離散傅利葉變換 基本線性代數 基本統計操作,隨機模...

Unity 使用者手冊使用者指南建立遊戲舊動畫系統

舊動畫系統 在引入 mecanim 之前,unity 使用自有的動畫系統實現逆向相容,此系統現在仍可使用。使用舊動畫主要是為了繼續處理沒有使用 mecanim 的舊工程。但是我們不建議在舊系統上處理新工程。使用舊動畫 要匯入舊動畫,您首先需要按以下方式在網格匯入器 mesh importer 的裝置...

Numpy學習指南之隨機漫步模擬隨機數生成

import random import numpy as np position 0 walk position 用position初始化walk列表 steps 1000 假設走1000步 for i in range steps 使用random隨機生成1或 1的步數 step 1 if ra...