python 生成陣列 Python建立陣列

2021-10-16 16:28:18 字數 1257 閱讀 7589

1  建立陣列

array函式

>>> a=([1,2],[3,4])>>>array(a)

array([[1, 2],

[3, 4]])

arange函式:指定初始值、終值、步長來建立陣列

>>> importnumpy>>> numpy.arange(0,1,0.1)

array([ 0. ,0.1, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9])

linspace函式:通過指定開始值、終值和元素個數來建立一維陣列,可以通過endpoint關鍵字指定是否包括終值,預設設定是包括終值

>>> numpy.linspace(0,1,10)

array([ 0. ,0.11111111, 0.22222222, 0.33333333, 0.44444444,0.55555556, 0.66666667, 0.77777778, 0.88888889, 1. ])

logspace函式和linspace類似,不過它建立等比數列,下面的例子產生1(10^0)到100(10^2)、有20個元素的等比數列

>>> numpy.logspace(1,2,20)

array([10. , 11.28837892, 12.74274986, 14.38449888,16.23776739, 18.32980711, 20.69138081, 23.35721469,26.36650899, 29.76351442, 33.59818286, 37.92690191,42.81332399, 48.32930239, 54.55594781, 61.58482111,69.51927962, 78.47599704, 88.58667904, 100. ])

此外,使用frombuffer, fromstring, fromfile等函式可以從位元組序列建立陣列,下面以fromstring為例:

>>> s='abcdefg'

>>> numpy.fromstring(s,dtype=numpy.int8)

array([97, 98, 99, 100, 101, 102, 103], dtype=int8)

fromfunction函式的第乙個引數為計算每個陣列元素的函式,第二個引數為陣列的大小(shape),因為它支援多維陣列,所以第二個引數必須是乙個序列

本例中建立乙個二維陣列表示九九乘法表:

importnumpydeffunc2(i,j):return (i+1)*(j+1)

a=numpy.fromfunction(func2,(9,9))

動態生成陣列

動態生成一維陣列 quint32 count map nodecount qstring name new qstring count 動態生成name一維陣列,儲存點的名字 動態生成二維陣列 quint32 linkatrix linkatrix quint32 malloc sizeof qui...

反射生成陣列

兩個月前寫了一篇 對泛型進行反射 的文章,沒什麼人看,小傷心一下 今天在論壇有人問怎樣反射生成陣列,突然又來了興致,決定試試 其實反射陣列最難無非就是陣列的初始化和陣列的索引了,那麼,如何初始化乙個陣列呢,陣列是沒有建構函式的,那麼用 invokemember null bindingflags.d...

反射生成陣列

兩個月前寫了一篇 對泛型進行反射 的文章,沒什麼人看,小傷心一下 今天在論壇有人問怎樣反射生成陣列,突然又來了興致,決定試試 其實反射陣列最難無非就是陣列的初始化和陣列的索引了,那麼,如何初始化乙個陣列呢,陣列是沒有建構函式的,那麼用 invokemember null bindingflags.d...