12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900 |
- """
- This module contains a set of functions for vectorized string
- operations and methods.
- .. note::
- The `chararray` class exists for backwards compatibility with
- Numarray, it is not recommended for new development. Starting from numpy
- 1.4, if one needs arrays of strings, it is recommended to use arrays of
- `dtype` `object_`, `string_` or `unicode_`, and use the free functions
- in the `numpy.char` module for fast vectorized string operations.
- Some methods will only be available if the corresponding string method is
- available in your version of Python.
- The preferred alias for `defchararray` is `numpy.char`.
- """
- import functools
- from .numerictypes import (
- string_, unicode_, integer, int_, object_, bool_, character)
- from .numeric import ndarray, compare_chararrays
- from .numeric import array as narray
- from numpy.core.multiarray import _vec_string
- from numpy.core.overrides import set_module
- from numpy.core import overrides
- from numpy.compat import asbytes
- import numpy
- __all__ = [
- 'equal', 'not_equal', 'greater_equal', 'less_equal',
- 'greater', 'less', 'str_len', 'add', 'multiply', 'mod', 'capitalize',
- 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
- 'find', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower', 'isspace',
- 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip', 'partition',
- 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',
- 'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase',
- 'title', 'translate', 'upper', 'zfill', 'isnumeric', 'isdecimal',
- 'array', 'asarray'
- ]
- _globalvar = 0
- array_function_dispatch = functools.partial(
- overrides.array_function_dispatch, module='numpy.char')
- def _use_unicode(*args):
- """
- Helper function for determining the output type of some string
- operations.
- For an operation on two ndarrays, if at least one is unicode, the
- result should be unicode.
- """
- for x in args:
- if (isinstance(x, str) or
- issubclass(numpy.asarray(x).dtype.type, unicode_)):
- return unicode_
- return string_
- def _to_string_or_unicode_array(result):
- """
- Helper function to cast a result back into a string or unicode array
- if an object array must be used as an intermediary.
- """
- return numpy.asarray(result.tolist())
- def _clean_args(*args):
- """
- Helper function for delegating arguments to Python string
- functions.
- Many of the Python string operations that have optional arguments
- do not use 'None' to indicate a default value. In these cases,
- we need to remove all None arguments, and those following them.
- """
- newargs = []
- for chk in args:
- if chk is None:
- break
- newargs.append(chk)
- return newargs
- def _get_num_chars(a):
- """
- Helper function that returns the number of characters per field in
- a string or unicode array. This is to abstract out the fact that
- for a unicode array this is itemsize / 4.
- """
- if issubclass(a.dtype.type, unicode_):
- return a.itemsize // 4
- return a.itemsize
- def _binary_op_dispatcher(x1, x2):
- return (x1, x2)
- @array_function_dispatch(_binary_op_dispatcher)
- def equal(x1, x2):
- """
- Return (x1 == x2) element-wise.
- Unlike `numpy.equal`, this comparison is performed by first
- stripping whitespace characters from the end of the string. This
- behavior is provided for backward-compatibility with numarray.
- Parameters
- ----------
- x1, x2 : array_like of str or unicode
- Input arrays of the same shape.
- Returns
- -------
- out : ndarray
- Output array of bools.
- See Also
- --------
- not_equal, greater_equal, less_equal, greater, less
- """
- return compare_chararrays(x1, x2, '==', True)
- @array_function_dispatch(_binary_op_dispatcher)
- def not_equal(x1, x2):
- """
- Return (x1 != x2) element-wise.
- Unlike `numpy.not_equal`, this comparison is performed by first
- stripping whitespace characters from the end of the string. This
- behavior is provided for backward-compatibility with numarray.
- Parameters
- ----------
- x1, x2 : array_like of str or unicode
- Input arrays of the same shape.
- Returns
- -------
- out : ndarray
- Output array of bools.
- See Also
- --------
- equal, greater_equal, less_equal, greater, less
- """
- return compare_chararrays(x1, x2, '!=', True)
- @array_function_dispatch(_binary_op_dispatcher)
- def greater_equal(x1, x2):
- """
- Return (x1 >= x2) element-wise.
- Unlike `numpy.greater_equal`, this comparison is performed by
- first stripping whitespace characters from the end of the string.
- This behavior is provided for backward-compatibility with
- numarray.
- Parameters
- ----------
- x1, x2 : array_like of str or unicode
- Input arrays of the same shape.
- Returns
- -------
- out : ndarray
- Output array of bools.
- See Also
- --------
- equal, not_equal, less_equal, greater, less
- """
- return compare_chararrays(x1, x2, '>=', True)
- @array_function_dispatch(_binary_op_dispatcher)
- def less_equal(x1, x2):
- """
- Return (x1 <= x2) element-wise.
- Unlike `numpy.less_equal`, this comparison is performed by first
- stripping whitespace characters from the end of the string. This
- behavior is provided for backward-compatibility with numarray.
- Parameters
- ----------
- x1, x2 : array_like of str or unicode
- Input arrays of the same shape.
- Returns
- -------
- out : ndarray
- Output array of bools.
- See Also
- --------
- equal, not_equal, greater_equal, greater, less
- """
- return compare_chararrays(x1, x2, '<=', True)
- @array_function_dispatch(_binary_op_dispatcher)
- def greater(x1, x2):
- """
- Return (x1 > x2) element-wise.
- Unlike `numpy.greater`, this comparison is performed by first
- stripping whitespace characters from the end of the string. This
- behavior is provided for backward-compatibility with numarray.
- Parameters
- ----------
- x1, x2 : array_like of str or unicode
- Input arrays of the same shape.
- Returns
- -------
- out : ndarray
- Output array of bools.
- See Also
- --------
- equal, not_equal, greater_equal, less_equal, less
- """
- return compare_chararrays(x1, x2, '>', True)
- @array_function_dispatch(_binary_op_dispatcher)
- def less(x1, x2):
- """
- Return (x1 < x2) element-wise.
- Unlike `numpy.greater`, this comparison is performed by first
- stripping whitespace characters from the end of the string. This
- behavior is provided for backward-compatibility with numarray.
- Parameters
- ----------
- x1, x2 : array_like of str or unicode
- Input arrays of the same shape.
- Returns
- -------
- out : ndarray
- Output array of bools.
- See Also
- --------
- equal, not_equal, greater_equal, less_equal, greater
- """
- return compare_chararrays(x1, x2, '<', True)
- def _unary_op_dispatcher(a):
- return (a,)
- @array_function_dispatch(_unary_op_dispatcher)
- def str_len(a):
- """
- Return len(a) element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of integers
- See Also
- --------
- builtins.len
- Examples
- --------
- >>> a = np.array(['Grace Hopper Conference', 'Open Source Day'])
- >>> np.char.str_len(a)
- array([23, 15])
- >>> a = np.array([u'\u0420', u'\u043e'])
- >>> np.char.str_len(a)
- array([1, 1])
- >>> a = np.array([['hello', 'world'], [u'\u0420', u'\u043e']])
- >>> np.char.str_len(a)
- array([[5, 5], [1, 1]])
- """
- # Note: __len__, etc. currently return ints, which are not C-integers.
- # Generally intp would be expected for lengths, although int is sufficient
- # due to the dtype itemsize limitation.
- return _vec_string(a, int_, '__len__')
- @array_function_dispatch(_binary_op_dispatcher)
- def add(x1, x2):
- """
- Return element-wise string concatenation for two arrays of str or unicode.
- Arrays `x1` and `x2` must have the same shape.
- Parameters
- ----------
- x1 : array_like of str or unicode
- Input array.
- x2 : array_like of str or unicode
- Input array.
- Returns
- -------
- add : ndarray
- Output array of `string_` or `unicode_`, depending on input types
- of the same shape as `x1` and `x2`.
- """
- arr1 = numpy.asarray(x1)
- arr2 = numpy.asarray(x2)
- out_size = _get_num_chars(arr1) + _get_num_chars(arr2)
- dtype = _use_unicode(arr1, arr2)
- return _vec_string(arr1, (dtype, out_size), '__add__', (arr2,))
- def _multiply_dispatcher(a, i):
- return (a,)
- @array_function_dispatch(_multiply_dispatcher)
- def multiply(a, i):
- """
- Return (a * i), that is string multiple concatenation,
- element-wise.
- Values in `i` of less than 0 are treated as 0 (which yields an
- empty string).
- Parameters
- ----------
- a : array_like of str or unicode
- i : array_like of ints
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input types
-
- Examples
- --------
- >>> a = np.array(["a", "b", "c"])
- >>> np.char.multiply(x, 3)
- array(['aaa', 'bbb', 'ccc'], dtype='<U3')
- >>> i = np.array([1, 2, 3])
- >>> np.char.multiply(a, i)
- array(['a', 'bb', 'ccc'], dtype='<U3')
- >>> np.char.multiply(np.array(['a']), i)
- array(['a', 'aa', 'aaa'], dtype='<U3')
- >>> a = np.array(['a', 'b', 'c', 'd', 'e', 'f']).reshape((2, 3))
- >>> np.char.multiply(a, 3)
- array([['aaa', 'bbb', 'ccc'],
- ['ddd', 'eee', 'fff']], dtype='<U3')
- >>> np.char.multiply(a, i)
- array([['a', 'bb', 'ccc'],
- ['d', 'ee', 'fff']], dtype='<U3')
- """
- a_arr = numpy.asarray(a)
- i_arr = numpy.asarray(i)
- if not issubclass(i_arr.dtype.type, integer):
- raise ValueError("Can only multiply by integers")
- out_size = _get_num_chars(a_arr) * max(int(i_arr.max()), 0)
- return _vec_string(
- a_arr, (a_arr.dtype.type, out_size), '__mul__', (i_arr,))
- def _mod_dispatcher(a, values):
- return (a, values)
- @array_function_dispatch(_mod_dispatcher)
- def mod(a, values):
- """
- Return (a % i), that is pre-Python 2.6 string formatting
- (interpolation), element-wise for a pair of array_likes of str
- or unicode.
- Parameters
- ----------
- a : array_like of str or unicode
- values : array_like of values
- These values will be element-wise interpolated into the string.
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input types
- See Also
- --------
- str.__mod__
- """
- return _to_string_or_unicode_array(
- _vec_string(a, object_, '__mod__', (values,)))
- @array_function_dispatch(_unary_op_dispatcher)
- def capitalize(a):
- """
- Return a copy of `a` with only the first character of each element
- capitalized.
- Calls `str.capitalize` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like of str or unicode
- Input array of strings to capitalize.
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input
- types
- See Also
- --------
- str.capitalize
- Examples
- --------
- >>> c = np.array(['a1b2','1b2a','b2a1','2a1b'],'S4'); c
- array(['a1b2', '1b2a', 'b2a1', '2a1b'],
- dtype='|S4')
- >>> np.char.capitalize(c)
- array(['A1b2', '1b2a', 'B2a1', '2a1b'],
- dtype='|S4')
- """
- a_arr = numpy.asarray(a)
- return _vec_string(a_arr, a_arr.dtype, 'capitalize')
- def _center_dispatcher(a, width, fillchar=None):
- return (a,)
- @array_function_dispatch(_center_dispatcher)
- def center(a, width, fillchar=' '):
- """
- Return a copy of `a` with its elements centered in a string of
- length `width`.
- Calls `str.center` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- width : int
- The length of the resulting strings
- fillchar : str or unicode, optional
- The padding character to use (default is space).
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input
- types
- See Also
- --------
- str.center
-
- Notes
- -----
- This function is intended to work with arrays of strings. The
- fill character is not applied to numeric types.
- Examples
- --------
- >>> c = np.array(['a1b2','1b2a','b2a1','2a1b']); c
- array(['a1b2', '1b2a', 'b2a1', '2a1b'], dtype='<U4')
- >>> np.char.center(c, width=9)
- array([' a1b2 ', ' 1b2a ', ' b2a1 ', ' 2a1b '], dtype='<U9')
- >>> np.char.center(c, width=9, fillchar='*')
- array(['***a1b2**', '***1b2a**', '***b2a1**', '***2a1b**'], dtype='<U9')
- >>> np.char.center(c, width=1)
- array(['a', '1', 'b', '2'], dtype='<U1')
- """
- a_arr = numpy.asarray(a)
- width_arr = numpy.asarray(width)
- size = int(numpy.max(width_arr.flat))
- if numpy.issubdtype(a_arr.dtype, numpy.string_):
- fillchar = asbytes(fillchar)
- return _vec_string(
- a_arr, (a_arr.dtype.type, size), 'center', (width_arr, fillchar))
- def _count_dispatcher(a, sub, start=None, end=None):
- return (a,)
- @array_function_dispatch(_count_dispatcher)
- def count(a, sub, start=0, end=None):
- """
- Returns an array with the number of non-overlapping occurrences of
- substring `sub` in the range [`start`, `end`].
- Calls `str.count` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- sub : str or unicode
- The substring to search for.
- start, end : int, optional
- Optional arguments `start` and `end` are interpreted as slice
- notation to specify the range in which to count.
- Returns
- -------
- out : ndarray
- Output array of ints.
- See Also
- --------
- str.count
- Examples
- --------
- >>> c = np.array(['aAaAaA', ' aA ', 'abBABba'])
- >>> c
- array(['aAaAaA', ' aA ', 'abBABba'], dtype='<U7')
- >>> np.char.count(c, 'A')
- array([3, 1, 1])
- >>> np.char.count(c, 'aA')
- array([3, 1, 0])
- >>> np.char.count(c, 'A', start=1, end=4)
- array([2, 1, 1])
- >>> np.char.count(c, 'A', start=1, end=3)
- array([1, 0, 0])
- """
- return _vec_string(a, int_, 'count', [sub, start] + _clean_args(end))
- def _code_dispatcher(a, encoding=None, errors=None):
- return (a,)
- @array_function_dispatch(_code_dispatcher)
- def decode(a, encoding=None, errors=None):
- r"""
- Calls ``bytes.decode`` element-wise.
- The set of available codecs comes from the Python standard library,
- and may be extended at runtime. For more information, see the
- :mod:`codecs` module.
- Parameters
- ----------
- a : array_like of str or unicode
- encoding : str, optional
- The name of an encoding
- errors : str, optional
- Specifies how to handle encoding errors
- Returns
- -------
- out : ndarray
- See Also
- --------
- :py:meth:`bytes.decode`
- Notes
- -----
- The type of the result will depend on the encoding specified.
- Examples
- --------
- >>> c = np.array([b'\x81\xc1\x81\xc1\x81\xc1', b'@@\x81\xc1@@',
- ... b'\x81\x82\xc2\xc1\xc2\x82\x81'])
- >>> c
- array([b'\x81\xc1\x81\xc1\x81\xc1', b'@@\x81\xc1@@',
- ... b'\x81\x82\xc2\xc1\xc2\x82\x81'], dtype='|S7')
- >>> np.char.decode(c, encoding='cp037')
- array(['aAaAaA', ' aA ', 'abBABba'], dtype='<U7')
- """
- return _to_string_or_unicode_array(
- _vec_string(a, object_, 'decode', _clean_args(encoding, errors)))
- @array_function_dispatch(_code_dispatcher)
- def encode(a, encoding=None, errors=None):
- """
- Calls `str.encode` element-wise.
- The set of available codecs comes from the Python standard library,
- and may be extended at runtime. For more information, see the codecs
- module.
- Parameters
- ----------
- a : array_like of str or unicode
- encoding : str, optional
- The name of an encoding
- errors : str, optional
- Specifies how to handle encoding errors
- Returns
- -------
- out : ndarray
- See Also
- --------
- str.encode
- Notes
- -----
- The type of the result will depend on the encoding specified.
- """
- return _to_string_or_unicode_array(
- _vec_string(a, object_, 'encode', _clean_args(encoding, errors)))
- def _endswith_dispatcher(a, suffix, start=None, end=None):
- return (a,)
- @array_function_dispatch(_endswith_dispatcher)
- def endswith(a, suffix, start=0, end=None):
- """
- Returns a boolean array which is `True` where the string element
- in `a` ends with `suffix`, otherwise `False`.
- Calls `str.endswith` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- suffix : str
- start, end : int, optional
- With optional `start`, test beginning at that position. With
- optional `end`, stop comparing at that position.
- Returns
- -------
- out : ndarray
- Outputs an array of bools.
- See Also
- --------
- str.endswith
- Examples
- --------
- >>> s = np.array(['foo', 'bar'])
- >>> s[0] = 'foo'
- >>> s[1] = 'bar'
- >>> s
- array(['foo', 'bar'], dtype='<U3')
- >>> np.char.endswith(s, 'ar')
- array([False, True])
- >>> np.char.endswith(s, 'a', start=1, end=2)
- array([False, True])
- """
- return _vec_string(
- a, bool_, 'endswith', [suffix, start] + _clean_args(end))
- def _expandtabs_dispatcher(a, tabsize=None):
- return (a,)
- @array_function_dispatch(_expandtabs_dispatcher)
- def expandtabs(a, tabsize=8):
- """
- Return a copy of each string element where all tab characters are
- replaced by one or more spaces.
- Calls `str.expandtabs` element-wise.
- Return a copy of each string element where all tab characters are
- replaced by one or more spaces, depending on the current column
- and the given `tabsize`. The column number is reset to zero after
- each newline occurring in the string. This doesn't understand other
- non-printing characters or escape sequences.
- Parameters
- ----------
- a : array_like of str or unicode
- Input array
- tabsize : int, optional
- Replace tabs with `tabsize` number of spaces. If not given defaults
- to 8 spaces.
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.expandtabs
- """
- return _to_string_or_unicode_array(
- _vec_string(a, object_, 'expandtabs', (tabsize,)))
- @array_function_dispatch(_count_dispatcher)
- def find(a, sub, start=0, end=None):
- """
- For each element, return the lowest index in the string where
- substring `sub` is found.
- Calls `str.find` element-wise.
- For each element, return the lowest index in the string where
- substring `sub` is found, such that `sub` is contained in the
- range [`start`, `end`].
- Parameters
- ----------
- a : array_like of str or unicode
- sub : str or unicode
- start, end : int, optional
- Optional arguments `start` and `end` are interpreted as in
- slice notation.
- Returns
- -------
- out : ndarray or int
- Output array of ints. Returns -1 if `sub` is not found.
- See Also
- --------
- str.find
- Examples
- --------
- >>> a = np.array(["NumPy is a Python library"])
- >>> np.char.find(a, "Python", start=0, end=None)
- array([11])
- """
- return _vec_string(
- a, int_, 'find', [sub, start] + _clean_args(end))
- @array_function_dispatch(_count_dispatcher)
- def index(a, sub, start=0, end=None):
- """
- Like `find`, but raises `ValueError` when the substring is not found.
- Calls `str.index` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- sub : str or unicode
- start, end : int, optional
- Returns
- -------
- out : ndarray
- Output array of ints. Returns -1 if `sub` is not found.
- See Also
- --------
- find, str.find
- Examples
- --------
- >>> a = np.array(["Computer Science"])
- >>> np.char.index(a, "Science", start=0, end=None)
- array([9])
- """
- return _vec_string(
- a, int_, 'index', [sub, start] + _clean_args(end))
- @array_function_dispatch(_unary_op_dispatcher)
- def isalnum(a):
- """
- Returns true for each element if all characters in the string are
- alphanumeric and there is at least one character, false otherwise.
- Calls `str.isalnum` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.isalnum
- """
- return _vec_string(a, bool_, 'isalnum')
- @array_function_dispatch(_unary_op_dispatcher)
- def isalpha(a):
- """
- Returns true for each element if all characters in the string are
- alphabetic and there is at least one character, false otherwise.
- Calls `str.isalpha` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of bools
- See Also
- --------
- str.isalpha
- """
- return _vec_string(a, bool_, 'isalpha')
- @array_function_dispatch(_unary_op_dispatcher)
- def isdigit(a):
- """
- Returns true for each element if all characters in the string are
- digits and there is at least one character, false otherwise.
- Calls `str.isdigit` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of bools
- See Also
- --------
- str.isdigit
- Examples
- --------
- >>> a = np.array(['a', 'b', '0'])
- >>> np.char.isdigit(a)
- array([False, False, True])
- >>> a = np.array([['a', 'b', '0'], ['c', '1', '2']])
- >>> np.char.isdigit(a)
- array([[False, False, True], [False, True, True]])
- """
- return _vec_string(a, bool_, 'isdigit')
- @array_function_dispatch(_unary_op_dispatcher)
- def islower(a):
- """
- Returns true for each element if all cased characters in the
- string are lowercase and there is at least one cased character,
- false otherwise.
- Calls `str.islower` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of bools
- See Also
- --------
- str.islower
- """
- return _vec_string(a, bool_, 'islower')
- @array_function_dispatch(_unary_op_dispatcher)
- def isspace(a):
- """
- Returns true for each element if there are only whitespace
- characters in the string and there is at least one character,
- false otherwise.
- Calls `str.isspace` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of bools
- See Also
- --------
- str.isspace
- """
- return _vec_string(a, bool_, 'isspace')
- @array_function_dispatch(_unary_op_dispatcher)
- def istitle(a):
- """
- Returns true for each element if the element is a titlecased
- string and there is at least one character, false otherwise.
- Call `str.istitle` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of bools
- See Also
- --------
- str.istitle
- """
- return _vec_string(a, bool_, 'istitle')
- @array_function_dispatch(_unary_op_dispatcher)
- def isupper(a):
- """
- Return true for each element if all cased characters in the
- string are uppercase and there is at least one character, false
- otherwise.
- Call `str.isupper` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of bools
- See Also
- --------
- str.isupper
- Examples
- --------
- >>> str = "GHC"
- >>> np.char.isupper(str)
- array(True)
- >>> a = np.array(["hello", "HELLO", "Hello"])
- >>> np.char.isupper(a)
- array([False, True, False])
- """
- return _vec_string(a, bool_, 'isupper')
- def _join_dispatcher(sep, seq):
- return (sep, seq)
- @array_function_dispatch(_join_dispatcher)
- def join(sep, seq):
- """
- Return a string which is the concatenation of the strings in the
- sequence `seq`.
- Calls `str.join` element-wise.
- Parameters
- ----------
- sep : array_like of str or unicode
- seq : array_like of str or unicode
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input types
- See Also
- --------
- str.join
- Examples
- --------
- >>> np.char.join('-', 'osd')
- array('o-s-d', dtype='<U5')
- >>> np.char.join(['-', '.'], ['ghc', 'osd'])
- array(['g-h-c', 'o.s.d'], dtype='<U5')
- """
- return _to_string_or_unicode_array(
- _vec_string(sep, object_, 'join', (seq,)))
- def _just_dispatcher(a, width, fillchar=None):
- return (a,)
- @array_function_dispatch(_just_dispatcher)
- def ljust(a, width, fillchar=' '):
- """
- Return an array with the elements of `a` left-justified in a
- string of length `width`.
- Calls `str.ljust` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- width : int
- The length of the resulting strings
- fillchar : str or unicode, optional
- The character to use for padding
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.ljust
- """
- a_arr = numpy.asarray(a)
- width_arr = numpy.asarray(width)
- size = int(numpy.max(width_arr.flat))
- if numpy.issubdtype(a_arr.dtype, numpy.string_):
- fillchar = asbytes(fillchar)
- return _vec_string(
- a_arr, (a_arr.dtype.type, size), 'ljust', (width_arr, fillchar))
- @array_function_dispatch(_unary_op_dispatcher)
- def lower(a):
- """
- Return an array with the elements converted to lowercase.
- Call `str.lower` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like, {str, unicode}
- Input array.
- Returns
- -------
- out : ndarray, {str, unicode}
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.lower
- Examples
- --------
- >>> c = np.array(['A1B C', '1BCA', 'BCA1']); c
- array(['A1B C', '1BCA', 'BCA1'], dtype='<U5')
- >>> np.char.lower(c)
- array(['a1b c', '1bca', 'bca1'], dtype='<U5')
- """
- a_arr = numpy.asarray(a)
- return _vec_string(a_arr, a_arr.dtype, 'lower')
- def _strip_dispatcher(a, chars=None):
- return (a,)
- @array_function_dispatch(_strip_dispatcher)
- def lstrip(a, chars=None):
- """
- For each element in `a`, return a copy with the leading characters
- removed.
- Calls `str.lstrip` element-wise.
- Parameters
- ----------
- a : array-like, {str, unicode}
- Input array.
- chars : {str, unicode}, optional
- The `chars` argument is a string specifying the set of
- characters to be removed. If omitted or None, the `chars`
- argument defaults to removing whitespace. The `chars` argument
- is not a prefix; rather, all combinations of its values are
- stripped.
- Returns
- -------
- out : ndarray, {str, unicode}
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.lstrip
- Examples
- --------
- >>> c = np.array(['aAaAaA', ' aA ', 'abBABba'])
- >>> c
- array(['aAaAaA', ' aA ', 'abBABba'], dtype='<U7')
- The 'a' variable is unstripped from c[1] because whitespace leading.
- >>> np.char.lstrip(c, 'a')
- array(['AaAaA', ' aA ', 'bBABba'], dtype='<U7')
- >>> np.char.lstrip(c, 'A') # leaves c unchanged
- array(['aAaAaA', ' aA ', 'abBABba'], dtype='<U7')
- >>> (np.char.lstrip(c, ' ') == np.char.lstrip(c, '')).all()
- ... # XXX: is this a regression? This used to return True
- ... # np.char.lstrip(c,'') does not modify c at all.
- False
- >>> (np.char.lstrip(c, ' ') == np.char.lstrip(c, None)).all()
- True
- """
- a_arr = numpy.asarray(a)
- return _vec_string(a_arr, a_arr.dtype, 'lstrip', (chars,))
- def _partition_dispatcher(a, sep):
- return (a,)
- @array_function_dispatch(_partition_dispatcher)
- def partition(a, sep):
- """
- Partition each element in `a` around `sep`.
- Calls `str.partition` element-wise.
- For each element in `a`, split the element as the first
- occurrence of `sep`, and return 3 strings containing the part
- before the separator, the separator itself, and the part after
- the separator. If the separator is not found, return 3 strings
- containing the string itself, followed by two empty strings.
- Parameters
- ----------
- a : array_like, {str, unicode}
- Input array
- sep : {str, unicode}
- Separator to split each string element in `a`.
- Returns
- -------
- out : ndarray, {str, unicode}
- Output array of str or unicode, depending on input type.
- The output array will have an extra dimension with 3
- elements per input element.
- See Also
- --------
- str.partition
- """
- return _to_string_or_unicode_array(
- _vec_string(a, object_, 'partition', (sep,)))
- def _replace_dispatcher(a, old, new, count=None):
- return (a,)
- @array_function_dispatch(_replace_dispatcher)
- def replace(a, old, new, count=None):
- """
- For each element in `a`, return a copy of the string with all
- occurrences of substring `old` replaced by `new`.
- Calls `str.replace` element-wise.
- Parameters
- ----------
- a : array-like of str or unicode
- old, new : str or unicode
- count : int, optional
- If the optional argument `count` is given, only the first
- `count` occurrences are replaced.
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.replace
-
- Examples
- --------
- >>> a = np.array(["That is a mango", "Monkeys eat mangos"])
- >>> np.char.replace(a, 'mango', 'banana')
- array(['That is a banana', 'Monkeys eat bananas'], dtype='<U19')
- >>> a = np.array(["The dish is fresh", "This is it"])
- >>> np.char.replace(a, 'is', 'was')
- array(['The dwash was fresh', 'Thwas was it'], dtype='<U19')
- """
- return _to_string_or_unicode_array(
- _vec_string(
- a, object_, 'replace', [old, new] + _clean_args(count)))
- @array_function_dispatch(_count_dispatcher)
- def rfind(a, sub, start=0, end=None):
- """
- For each element in `a`, return the highest index in the string
- where substring `sub` is found, such that `sub` is contained
- within [`start`, `end`].
- Calls `str.rfind` element-wise.
- Parameters
- ----------
- a : array-like of str or unicode
- sub : str or unicode
- start, end : int, optional
- Optional arguments `start` and `end` are interpreted as in
- slice notation.
- Returns
- -------
- out : ndarray
- Output array of ints. Return -1 on failure.
- See Also
- --------
- str.rfind
- """
- return _vec_string(
- a, int_, 'rfind', [sub, start] + _clean_args(end))
- @array_function_dispatch(_count_dispatcher)
- def rindex(a, sub, start=0, end=None):
- """
- Like `rfind`, but raises `ValueError` when the substring `sub` is
- not found.
- Calls `str.rindex` element-wise.
- Parameters
- ----------
- a : array-like of str or unicode
- sub : str or unicode
- start, end : int, optional
- Returns
- -------
- out : ndarray
- Output array of ints.
- See Also
- --------
- rfind, str.rindex
- """
- return _vec_string(
- a, int_, 'rindex', [sub, start] + _clean_args(end))
- @array_function_dispatch(_just_dispatcher)
- def rjust(a, width, fillchar=' '):
- """
- Return an array with the elements of `a` right-justified in a
- string of length `width`.
- Calls `str.rjust` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- width : int
- The length of the resulting strings
- fillchar : str or unicode, optional
- The character to use for padding
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.rjust
- """
- a_arr = numpy.asarray(a)
- width_arr = numpy.asarray(width)
- size = int(numpy.max(width_arr.flat))
- if numpy.issubdtype(a_arr.dtype, numpy.string_):
- fillchar = asbytes(fillchar)
- return _vec_string(
- a_arr, (a_arr.dtype.type, size), 'rjust', (width_arr, fillchar))
- @array_function_dispatch(_partition_dispatcher)
- def rpartition(a, sep):
- """
- Partition (split) each element around the right-most separator.
- Calls `str.rpartition` element-wise.
- For each element in `a`, split the element as the last
- occurrence of `sep`, and return 3 strings containing the part
- before the separator, the separator itself, and the part after
- the separator. If the separator is not found, return 3 strings
- containing the string itself, followed by two empty strings.
- Parameters
- ----------
- a : array_like of str or unicode
- Input array
- sep : str or unicode
- Right-most separator to split each element in array.
- Returns
- -------
- out : ndarray
- Output array of string or unicode, depending on input
- type. The output array will have an extra dimension with
- 3 elements per input element.
- See Also
- --------
- str.rpartition
- """
- return _to_string_or_unicode_array(
- _vec_string(a, object_, 'rpartition', (sep,)))
- def _split_dispatcher(a, sep=None, maxsplit=None):
- return (a,)
- @array_function_dispatch(_split_dispatcher)
- def rsplit(a, sep=None, maxsplit=None):
- """
- For each element in `a`, return a list of the words in the
- string, using `sep` as the delimiter string.
- Calls `str.rsplit` element-wise.
- Except for splitting from the right, `rsplit`
- behaves like `split`.
- Parameters
- ----------
- a : array_like of str or unicode
- sep : str or unicode, optional
- If `sep` is not specified or None, any whitespace string
- is a separator.
- maxsplit : int, optional
- If `maxsplit` is given, at most `maxsplit` splits are done,
- the rightmost ones.
- Returns
- -------
- out : ndarray
- Array of list objects
- See Also
- --------
- str.rsplit, split
- """
- # This will return an array of lists of different sizes, so we
- # leave it as an object array
- return _vec_string(
- a, object_, 'rsplit', [sep] + _clean_args(maxsplit))
- def _strip_dispatcher(a, chars=None):
- return (a,)
- @array_function_dispatch(_strip_dispatcher)
- def rstrip(a, chars=None):
- """
- For each element in `a`, return a copy with the trailing
- characters removed.
- Calls `str.rstrip` element-wise.
- Parameters
- ----------
- a : array-like of str or unicode
- chars : str or unicode, optional
- The `chars` argument is a string specifying the set of
- characters to be removed. If omitted or None, the `chars`
- argument defaults to removing whitespace. The `chars` argument
- is not a suffix; rather, all combinations of its values are
- stripped.
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.rstrip
- Examples
- --------
- >>> c = np.array(['aAaAaA', 'abBABba'], dtype='S7'); c
- array(['aAaAaA', 'abBABba'],
- dtype='|S7')
- >>> np.char.rstrip(c, b'a')
- array(['aAaAaA', 'abBABb'],
- dtype='|S7')
- >>> np.char.rstrip(c, b'A')
- array(['aAaAa', 'abBABba'],
- dtype='|S7')
- """
- a_arr = numpy.asarray(a)
- return _vec_string(a_arr, a_arr.dtype, 'rstrip', (chars,))
- @array_function_dispatch(_split_dispatcher)
- def split(a, sep=None, maxsplit=None):
- """
- For each element in `a`, return a list of the words in the
- string, using `sep` as the delimiter string.
- Calls `str.split` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- sep : str or unicode, optional
- If `sep` is not specified or None, any whitespace string is a
- separator.
- maxsplit : int, optional
- If `maxsplit` is given, at most `maxsplit` splits are done.
- Returns
- -------
- out : ndarray
- Array of list objects
- See Also
- --------
- str.split, rsplit
- """
- # This will return an array of lists of different sizes, so we
- # leave it as an object array
- return _vec_string(
- a, object_, 'split', [sep] + _clean_args(maxsplit))
- def _splitlines_dispatcher(a, keepends=None):
- return (a,)
- @array_function_dispatch(_splitlines_dispatcher)
- def splitlines(a, keepends=None):
- """
- For each element in `a`, return a list of the lines in the
- element, breaking at line boundaries.
- Calls `str.splitlines` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- keepends : bool, optional
- Line breaks are not included in the resulting list unless
- keepends is given and true.
- Returns
- -------
- out : ndarray
- Array of list objects
- See Also
- --------
- str.splitlines
- """
- return _vec_string(
- a, object_, 'splitlines', _clean_args(keepends))
- def _startswith_dispatcher(a, prefix, start=None, end=None):
- return (a,)
- @array_function_dispatch(_startswith_dispatcher)
- def startswith(a, prefix, start=0, end=None):
- """
- Returns a boolean array which is `True` where the string element
- in `a` starts with `prefix`, otherwise `False`.
- Calls `str.startswith` element-wise.
- Parameters
- ----------
- a : array_like of str or unicode
- prefix : str
- start, end : int, optional
- With optional `start`, test beginning at that position. With
- optional `end`, stop comparing at that position.
- Returns
- -------
- out : ndarray
- Array of booleans
- See Also
- --------
- str.startswith
- """
- return _vec_string(
- a, bool_, 'startswith', [prefix, start] + _clean_args(end))
- @array_function_dispatch(_strip_dispatcher)
- def strip(a, chars=None):
- """
- For each element in `a`, return a copy with the leading and
- trailing characters removed.
- Calls `str.strip` element-wise.
- Parameters
- ----------
- a : array-like of str or unicode
- chars : str or unicode, optional
- The `chars` argument is a string specifying the set of
- characters to be removed. If omitted or None, the `chars`
- argument defaults to removing whitespace. The `chars` argument
- is not a prefix or suffix; rather, all combinations of its
- values are stripped.
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.strip
- Examples
- --------
- >>> c = np.array(['aAaAaA', ' aA ', 'abBABba'])
- >>> c
- array(['aAaAaA', ' aA ', 'abBABba'], dtype='<U7')
- >>> np.char.strip(c)
- array(['aAaAaA', 'aA', 'abBABba'], dtype='<U7')
- >>> np.char.strip(c, 'a') # 'a' unstripped from c[1] because whitespace leads
- array(['AaAaA', ' aA ', 'bBABb'], dtype='<U7')
- >>> np.char.strip(c, 'A') # 'A' unstripped from c[1] because (unprinted) ws trails
- array(['aAaAa', ' aA ', 'abBABba'], dtype='<U7')
- """
- a_arr = numpy.asarray(a)
- return _vec_string(a_arr, a_arr.dtype, 'strip', _clean_args(chars))
- @array_function_dispatch(_unary_op_dispatcher)
- def swapcase(a):
- """
- Return element-wise a copy of the string with
- uppercase characters converted to lowercase and vice versa.
- Calls `str.swapcase` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like, {str, unicode}
- Input array.
- Returns
- -------
- out : ndarray, {str, unicode}
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.swapcase
- Examples
- --------
- >>> c=np.array(['a1B c','1b Ca','b Ca1','cA1b'],'S5'); c
- array(['a1B c', '1b Ca', 'b Ca1', 'cA1b'],
- dtype='|S5')
- >>> np.char.swapcase(c)
- array(['A1b C', '1B cA', 'B cA1', 'Ca1B'],
- dtype='|S5')
- """
- a_arr = numpy.asarray(a)
- return _vec_string(a_arr, a_arr.dtype, 'swapcase')
- @array_function_dispatch(_unary_op_dispatcher)
- def title(a):
- """
- Return element-wise title cased version of string or unicode.
- Title case words start with uppercase characters, all remaining cased
- characters are lowercase.
- Calls `str.title` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like, {str, unicode}
- Input array.
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.title
- Examples
- --------
- >>> c=np.array(['a1b c','1b ca','b ca1','ca1b'],'S5'); c
- array(['a1b c', '1b ca', 'b ca1', 'ca1b'],
- dtype='|S5')
- >>> np.char.title(c)
- array(['A1B C', '1B Ca', 'B Ca1', 'Ca1B'],
- dtype='|S5')
- """
- a_arr = numpy.asarray(a)
- return _vec_string(a_arr, a_arr.dtype, 'title')
- def _translate_dispatcher(a, table, deletechars=None):
- return (a,)
- @array_function_dispatch(_translate_dispatcher)
- def translate(a, table, deletechars=None):
- """
- For each element in `a`, return a copy of the string where all
- characters occurring in the optional argument `deletechars` are
- removed, and the remaining characters have been mapped through the
- given translation table.
- Calls `str.translate` element-wise.
- Parameters
- ----------
- a : array-like of str or unicode
- table : str of length 256
- deletechars : str
- Returns
- -------
- out : ndarray
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.translate
- """
- a_arr = numpy.asarray(a)
- if issubclass(a_arr.dtype.type, unicode_):
- return _vec_string(
- a_arr, a_arr.dtype, 'translate', (table,))
- else:
- return _vec_string(
- a_arr, a_arr.dtype, 'translate', [table] + _clean_args(deletechars))
- @array_function_dispatch(_unary_op_dispatcher)
- def upper(a):
- """
- Return an array with the elements converted to uppercase.
- Calls `str.upper` element-wise.
- For 8-bit strings, this method is locale-dependent.
- Parameters
- ----------
- a : array_like, {str, unicode}
- Input array.
- Returns
- -------
- out : ndarray, {str, unicode}
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.upper
- Examples
- --------
- >>> c = np.array(['a1b c', '1bca', 'bca1']); c
- array(['a1b c', '1bca', 'bca1'], dtype='<U5')
- >>> np.char.upper(c)
- array(['A1B C', '1BCA', 'BCA1'], dtype='<U5')
- """
- a_arr = numpy.asarray(a)
- return _vec_string(a_arr, a_arr.dtype, 'upper')
- def _zfill_dispatcher(a, width):
- return (a,)
- @array_function_dispatch(_zfill_dispatcher)
- def zfill(a, width):
- """
- Return the numeric string left-filled with zeros
- Calls `str.zfill` element-wise.
- Parameters
- ----------
- a : array_like, {str, unicode}
- Input array.
- width : int
- Width of string to left-fill elements in `a`.
- Returns
- -------
- out : ndarray, {str, unicode}
- Output array of str or unicode, depending on input type
- See Also
- --------
- str.zfill
- """
- a_arr = numpy.asarray(a)
- width_arr = numpy.asarray(width)
- size = int(numpy.max(width_arr.flat))
- return _vec_string(
- a_arr, (a_arr.dtype.type, size), 'zfill', (width_arr,))
- @array_function_dispatch(_unary_op_dispatcher)
- def isnumeric(a):
- """
- For each element, return True if there are only numeric
- characters in the element.
- Calls `unicode.isnumeric` element-wise.
- Numeric characters include digit characters, and all characters
- that have the Unicode numeric value property, e.g. ``U+2155,
- VULGAR FRACTION ONE FIFTH``.
- Parameters
- ----------
- a : array_like, unicode
- Input array.
- Returns
- -------
- out : ndarray, bool
- Array of booleans of same shape as `a`.
- See Also
- --------
- unicode.isnumeric
- Examples
- --------
- >>> np.char.isnumeric(['123', '123abc', '9.0', '1/4', 'VIII'])
- array([ True, False, False, False, False])
- """
- if _use_unicode(a) != unicode_:
- raise TypeError("isnumeric is only available for Unicode strings and arrays")
- return _vec_string(a, bool_, 'isnumeric')
- @array_function_dispatch(_unary_op_dispatcher)
- def isdecimal(a):
- """
- For each element, return True if there are only decimal
- characters in the element.
- Calls `unicode.isdecimal` element-wise.
- Decimal characters include digit characters, and all characters
- that can be used to form decimal-radix numbers,
- e.g. ``U+0660, ARABIC-INDIC DIGIT ZERO``.
- Parameters
- ----------
- a : array_like, unicode
- Input array.
- Returns
- -------
- out : ndarray, bool
- Array of booleans identical in shape to `a`.
- See Also
- --------
- unicode.isdecimal
- Examples
- --------
- >>> np.char.isdecimal(['12345', '4.99', '123ABC', ''])
- array([ True, False, False, False])
- """
- if _use_unicode(a) != unicode_:
- raise TypeError("isnumeric is only available for Unicode strings and arrays")
- return _vec_string(a, bool_, 'isdecimal')
- @set_module('numpy')
- class chararray(ndarray):
- """
- chararray(shape, itemsize=1, unicode=False, buffer=None, offset=0,
- strides=None, order=None)
- Provides a convenient view on arrays of string and unicode values.
- .. note::
- The `chararray` class exists for backwards compatibility with
- Numarray, it is not recommended for new development. Starting from numpy
- 1.4, if one needs arrays of strings, it is recommended to use arrays of
- `dtype` `object_`, `string_` or `unicode_`, and use the free functions
- in the `numpy.char` module for fast vectorized string operations.
- Versus a regular NumPy array of type `str` or `unicode`, this
- class adds the following functionality:
- 1) values automatically have whitespace removed from the end
- when indexed
- 2) comparison operators automatically remove whitespace from the
- end when comparing values
- 3) vectorized string operations are provided as methods
- (e.g. `.endswith`) and infix operators (e.g. ``"+", "*", "%"``)
- chararrays should be created using `numpy.char.array` or
- `numpy.char.asarray`, rather than this constructor directly.
- This constructor creates the array, using `buffer` (with `offset`
- and `strides`) if it is not ``None``. If `buffer` is ``None``, then
- constructs a new array with `strides` in "C order", unless both
- ``len(shape) >= 2`` and ``order='F'``, in which case `strides`
- is in "Fortran order".
- Methods
- -------
- astype
- argsort
- copy
- count
- decode
- dump
- dumps
- encode
- endswith
- expandtabs
- fill
- find
- flatten
- getfield
- index
- isalnum
- isalpha
- isdecimal
- isdigit
- islower
- isnumeric
- isspace
- istitle
- isupper
- item
- join
- ljust
- lower
- lstrip
- nonzero
- put
- ravel
- repeat
- replace
- reshape
- resize
- rfind
- rindex
- rjust
- rsplit
- rstrip
- searchsorted
- setfield
- setflags
- sort
- split
- splitlines
- squeeze
- startswith
- strip
- swapaxes
- swapcase
- take
- title
- tofile
- tolist
- tostring
- translate
- transpose
- upper
- view
- zfill
- Parameters
- ----------
- shape : tuple
- Shape of the array.
- itemsize : int, optional
- Length of each array element, in number of characters. Default is 1.
- unicode : bool, optional
- Are the array elements of type unicode (True) or string (False).
- Default is False.
- buffer : object exposing the buffer interface or str, optional
- Memory address of the start of the array data. Default is None,
- in which case a new array is created.
- offset : int, optional
- Fixed stride displacement from the beginning of an axis?
- Default is 0. Needs to be >=0.
- strides : array_like of ints, optional
- Strides for the array (see `ndarray.strides` for full description).
- Default is None.
- order : {'C', 'F'}, optional
- The order in which the array data is stored in memory: 'C' ->
- "row major" order (the default), 'F' -> "column major"
- (Fortran) order.
- Examples
- --------
- >>> charar = np.chararray((3, 3))
- >>> charar[:] = 'a'
- >>> charar
- chararray([[b'a', b'a', b'a'],
- [b'a', b'a', b'a'],
- [b'a', b'a', b'a']], dtype='|S1')
- >>> charar = np.chararray(charar.shape, itemsize=5)
- >>> charar[:] = 'abc'
- >>> charar
- chararray([[b'abc', b'abc', b'abc'],
- [b'abc', b'abc', b'abc'],
- [b'abc', b'abc', b'abc']], dtype='|S5')
- """
- def __new__(subtype, shape, itemsize=1, unicode=False, buffer=None,
- offset=0, strides=None, order='C'):
- global _globalvar
- if unicode:
- dtype = unicode_
- else:
- dtype = string_
- # force itemsize to be a Python int, since using NumPy integer
- # types results in itemsize.itemsize being used as the size of
- # strings in the new array.
- itemsize = int(itemsize)
- if isinstance(buffer, str):
- # unicode objects do not have the buffer interface
- filler = buffer
- buffer = None
- else:
- filler = None
- _globalvar = 1
- if buffer is None:
- self = ndarray.__new__(subtype, shape, (dtype, itemsize),
- order=order)
- else:
- self = ndarray.__new__(subtype, shape, (dtype, itemsize),
- buffer=buffer,
- offset=offset, strides=strides,
- order=order)
- if filler is not None:
- self[...] = filler
- _globalvar = 0
- return self
- def __array_finalize__(self, obj):
- # The b is a special case because it is used for reconstructing.
- if not _globalvar and self.dtype.char not in 'SUbc':
- raise ValueError("Can only create a chararray from string data.")
- def __getitem__(self, obj):
- val = ndarray.__getitem__(self, obj)
- if isinstance(val, character):
- temp = val.rstrip()
- if len(temp) == 0:
- val = ''
- else:
- val = temp
- return val
- # IMPLEMENTATION NOTE: Most of the methods of this class are
- # direct delegations to the free functions in this module.
- # However, those that return an array of strings should instead
- # return a chararray, so some extra wrapping is required.
- def __eq__(self, other):
- """
- Return (self == other) element-wise.
- See Also
- --------
- equal
- """
- return equal(self, other)
- def __ne__(self, other):
- """
- Return (self != other) element-wise.
- See Also
- --------
- not_equal
- """
- return not_equal(self, other)
- def __ge__(self, other):
- """
- Return (self >= other) element-wise.
- See Also
- --------
- greater_equal
- """
- return greater_equal(self, other)
- def __le__(self, other):
- """
- Return (self <= other) element-wise.
- See Also
- --------
- less_equal
- """
- return less_equal(self, other)
- def __gt__(self, other):
- """
- Return (self > other) element-wise.
- See Also
- --------
- greater
- """
- return greater(self, other)
- def __lt__(self, other):
- """
- Return (self < other) element-wise.
- See Also
- --------
- less
- """
- return less(self, other)
- def __add__(self, other):
- """
- Return (self + other), that is string concatenation,
- element-wise for a pair of array_likes of str or unicode.
- See Also
- --------
- add
- """
- return asarray(add(self, other))
- def __radd__(self, other):
- """
- Return (other + self), that is string concatenation,
- element-wise for a pair of array_likes of `string_` or `unicode_`.
- See Also
- --------
- add
- """
- return asarray(add(numpy.asarray(other), self))
- def __mul__(self, i):
- """
- Return (self * i), that is string multiple concatenation,
- element-wise.
- See Also
- --------
- multiply
- """
- return asarray(multiply(self, i))
- def __rmul__(self, i):
- """
- Return (self * i), that is string multiple concatenation,
- element-wise.
- See Also
- --------
- multiply
- """
- return asarray(multiply(self, i))
- def __mod__(self, i):
- """
- Return (self % i), that is pre-Python 2.6 string formatting
- (interpolation), element-wise for a pair of array_likes of `string_`
- or `unicode_`.
- See Also
- --------
- mod
- """
- return asarray(mod(self, i))
- def __rmod__(self, other):
- return NotImplemented
- def argsort(self, axis=-1, kind=None, order=None):
- """
- Return the indices that sort the array lexicographically.
- For full documentation see `numpy.argsort`, for which this method is
- in fact merely a "thin wrapper."
- Examples
- --------
- >>> c = np.array(['a1b c', '1b ca', 'b ca1', 'Ca1b'], 'S5')
- >>> c = c.view(np.chararray); c
- chararray(['a1b c', '1b ca', 'b ca1', 'Ca1b'],
- dtype='|S5')
- >>> c[c.argsort()]
- chararray(['1b ca', 'Ca1b', 'a1b c', 'b ca1'],
- dtype='|S5')
- """
- return self.__array__().argsort(axis, kind, order)
- argsort.__doc__ = ndarray.argsort.__doc__
- def capitalize(self):
- """
- Return a copy of `self` with only the first character of each element
- capitalized.
- See Also
- --------
- char.capitalize
- """
- return asarray(capitalize(self))
- def center(self, width, fillchar=' '):
- """
- Return a copy of `self` with its elements centered in a
- string of length `width`.
- See Also
- --------
- center
- """
- return asarray(center(self, width, fillchar))
- def count(self, sub, start=0, end=None):
- """
- Returns an array with the number of non-overlapping occurrences of
- substring `sub` in the range [`start`, `end`].
- See Also
- --------
- char.count
- """
- return count(self, sub, start, end)
- def decode(self, encoding=None, errors=None):
- """
- Calls ``bytes.decode`` element-wise.
- See Also
- --------
- char.decode
- """
- return decode(self, encoding, errors)
- def encode(self, encoding=None, errors=None):
- """
- Calls `str.encode` element-wise.
- See Also
- --------
- char.encode
- """
- return encode(self, encoding, errors)
- def endswith(self, suffix, start=0, end=None):
- """
- Returns a boolean array which is `True` where the string element
- in `self` ends with `suffix`, otherwise `False`.
- See Also
- --------
- char.endswith
- """
- return endswith(self, suffix, start, end)
- def expandtabs(self, tabsize=8):
- """
- Return a copy of each string element where all tab characters are
- replaced by one or more spaces.
- See Also
- --------
- char.expandtabs
- """
- return asarray(expandtabs(self, tabsize))
- def find(self, sub, start=0, end=None):
- """
- For each element, return the lowest index in the string where
- substring `sub` is found.
- See Also
- --------
- char.find
- """
- return find(self, sub, start, end)
- def index(self, sub, start=0, end=None):
- """
- Like `find`, but raises `ValueError` when the substring is not found.
- See Also
- --------
- char.index
- """
- return index(self, sub, start, end)
- def isalnum(self):
- """
- Returns true for each element if all characters in the string
- are alphanumeric and there is at least one character, false
- otherwise.
- See Also
- --------
- char.isalnum
- """
- return isalnum(self)
- def isalpha(self):
- """
- Returns true for each element if all characters in the string
- are alphabetic and there is at least one character, false
- otherwise.
- See Also
- --------
- char.isalpha
- """
- return isalpha(self)
- def isdigit(self):
- """
- Returns true for each element if all characters in the string are
- digits and there is at least one character, false otherwise.
- See Also
- --------
- char.isdigit
- """
- return isdigit(self)
- def islower(self):
- """
- Returns true for each element if all cased characters in the
- string are lowercase and there is at least one cased character,
- false otherwise.
- See Also
- --------
- char.islower
- """
- return islower(self)
- def isspace(self):
- """
- Returns true for each element if there are only whitespace
- characters in the string and there is at least one character,
- false otherwise.
- See Also
- --------
- char.isspace
- """
- return isspace(self)
- def istitle(self):
- """
- Returns true for each element if the element is a titlecased
- string and there is at least one character, false otherwise.
- See Also
- --------
- char.istitle
- """
- return istitle(self)
- def isupper(self):
- """
- Returns true for each element if all cased characters in the
- string are uppercase and there is at least one character, false
- otherwise.
- See Also
- --------
- char.isupper
- """
- return isupper(self)
- def join(self, seq):
- """
- Return a string which is the concatenation of the strings in the
- sequence `seq`.
- See Also
- --------
- char.join
- """
- return join(self, seq)
- def ljust(self, width, fillchar=' '):
- """
- Return an array with the elements of `self` left-justified in a
- string of length `width`.
- See Also
- --------
- char.ljust
- """
- return asarray(ljust(self, width, fillchar))
- def lower(self):
- """
- Return an array with the elements of `self` converted to
- lowercase.
- See Also
- --------
- char.lower
- """
- return asarray(lower(self))
- def lstrip(self, chars=None):
- """
- For each element in `self`, return a copy with the leading characters
- removed.
- See Also
- --------
- char.lstrip
- """
- return asarray(lstrip(self, chars))
- def partition(self, sep):
- """
- Partition each element in `self` around `sep`.
- See Also
- --------
- partition
- """
- return asarray(partition(self, sep))
- def replace(self, old, new, count=None):
- """
- For each element in `self`, return a copy of the string with all
- occurrences of substring `old` replaced by `new`.
- See Also
- --------
- char.replace
- """
- return asarray(replace(self, old, new, count))
- def rfind(self, sub, start=0, end=None):
- """
- For each element in `self`, return the highest index in the string
- where substring `sub` is found, such that `sub` is contained
- within [`start`, `end`].
- See Also
- --------
- char.rfind
- """
- return rfind(self, sub, start, end)
- def rindex(self, sub, start=0, end=None):
- """
- Like `rfind`, but raises `ValueError` when the substring `sub` is
- not found.
- See Also
- --------
- char.rindex
- """
- return rindex(self, sub, start, end)
- def rjust(self, width, fillchar=' '):
- """
- Return an array with the elements of `self`
- right-justified in a string of length `width`.
- See Also
- --------
- char.rjust
- """
- return asarray(rjust(self, width, fillchar))
- def rpartition(self, sep):
- """
- Partition each element in `self` around `sep`.
- See Also
- --------
- rpartition
- """
- return asarray(rpartition(self, sep))
- def rsplit(self, sep=None, maxsplit=None):
- """
- For each element in `self`, return a list of the words in
- the string, using `sep` as the delimiter string.
- See Also
- --------
- char.rsplit
- """
- return rsplit(self, sep, maxsplit)
- def rstrip(self, chars=None):
- """
- For each element in `self`, return a copy with the trailing
- characters removed.
- See Also
- --------
- char.rstrip
- """
- return asarray(rstrip(self, chars))
- def split(self, sep=None, maxsplit=None):
- """
- For each element in `self`, return a list of the words in the
- string, using `sep` as the delimiter string.
- See Also
- --------
- char.split
- """
- return split(self, sep, maxsplit)
- def splitlines(self, keepends=None):
- """
- For each element in `self`, return a list of the lines in the
- element, breaking at line boundaries.
- See Also
- --------
- char.splitlines
- """
- return splitlines(self, keepends)
- def startswith(self, prefix, start=0, end=None):
- """
- Returns a boolean array which is `True` where the string element
- in `self` starts with `prefix`, otherwise `False`.
- See Also
- --------
- char.startswith
- """
- return startswith(self, prefix, start, end)
- def strip(self, chars=None):
- """
- For each element in `self`, return a copy with the leading and
- trailing characters removed.
- See Also
- --------
- char.strip
- """
- return asarray(strip(self, chars))
- def swapcase(self):
- """
- For each element in `self`, return a copy of the string with
- uppercase characters converted to lowercase and vice versa.
- See Also
- --------
- char.swapcase
- """
- return asarray(swapcase(self))
- def title(self):
- """
- For each element in `self`, return a titlecased version of the
- string: words start with uppercase characters, all remaining cased
- characters are lowercase.
- See Also
- --------
- char.title
- """
- return asarray(title(self))
- def translate(self, table, deletechars=None):
- """
- For each element in `self`, return a copy of the string where
- all characters occurring in the optional argument
- `deletechars` are removed, and the remaining characters have
- been mapped through the given translation table.
- See Also
- --------
- char.translate
- """
- return asarray(translate(self, table, deletechars))
- def upper(self):
- """
- Return an array with the elements of `self` converted to
- uppercase.
- See Also
- --------
- char.upper
- """
- return asarray(upper(self))
- def zfill(self, width):
- """
- Return the numeric string left-filled with zeros in a string of
- length `width`.
- See Also
- --------
- char.zfill
- """
- return asarray(zfill(self, width))
- def isnumeric(self):
- """
- For each element in `self`, return True if there are only
- numeric characters in the element.
- See Also
- --------
- char.isnumeric
- """
- return isnumeric(self)
- def isdecimal(self):
- """
- For each element in `self`, return True if there are only
- decimal characters in the element.
- See Also
- --------
- char.isdecimal
- """
- return isdecimal(self)
- @set_module("numpy.char")
- def array(obj, itemsize=None, copy=True, unicode=None, order=None):
- """
- Create a `chararray`.
- .. note::
- This class is provided for numarray backward-compatibility.
- New code (not concerned with numarray compatibility) should use
- arrays of type `string_` or `unicode_` and use the free functions
- in :mod:`numpy.char <numpy.core.defchararray>` for fast
- vectorized string operations instead.
- Versus a regular NumPy array of type `str` or `unicode`, this
- class adds the following functionality:
- 1) values automatically have whitespace removed from the end
- when indexed
- 2) comparison operators automatically remove whitespace from the
- end when comparing values
- 3) vectorized string operations are provided as methods
- (e.g. `str.endswith`) and infix operators (e.g. ``+, *, %``)
- Parameters
- ----------
- obj : array of str or unicode-like
- itemsize : int, optional
- `itemsize` is the number of characters per scalar in the
- resulting array. If `itemsize` is None, and `obj` is an
- object array or a Python list, the `itemsize` will be
- automatically determined. If `itemsize` is provided and `obj`
- is of type str or unicode, then the `obj` string will be
- chunked into `itemsize` pieces.
- copy : bool, optional
- If true (default), then the object is copied. Otherwise, a copy
- will only be made if __array__ returns a copy, if obj is a
- nested sequence, or if a copy is needed to satisfy any of the other
- requirements (`itemsize`, unicode, `order`, etc.).
- unicode : bool, optional
- When true, the resulting `chararray` can contain Unicode
- characters, when false only 8-bit characters. If unicode is
- None and `obj` is one of the following:
- - a `chararray`,
- - an ndarray of type `str` or `unicode`
- - a Python str or unicode object,
- then the unicode setting of the output array will be
- automatically determined.
- order : {'C', 'F', 'A'}, optional
- Specify the order of the array. If order is 'C' (default), then the
- array will be in C-contiguous order (last-index varies the
- fastest). If order is 'F', then the returned array
- will be in Fortran-contiguous order (first-index varies the
- fastest). If order is 'A', then the returned array may
- be in any order (either C-, Fortran-contiguous, or even
- discontiguous).
- """
- if isinstance(obj, (bytes, str)):
- if unicode is None:
- if isinstance(obj, str):
- unicode = True
- else:
- unicode = False
- if itemsize is None:
- itemsize = len(obj)
- shape = len(obj) // itemsize
- return chararray(shape, itemsize=itemsize, unicode=unicode,
- buffer=obj, order=order)
- if isinstance(obj, (list, tuple)):
- obj = numpy.asarray(obj)
- if isinstance(obj, ndarray) and issubclass(obj.dtype.type, character):
- # If we just have a vanilla chararray, create a chararray
- # view around it.
- if not isinstance(obj, chararray):
- obj = obj.view(chararray)
- if itemsize is None:
- itemsize = obj.itemsize
- # itemsize is in 8-bit chars, so for Unicode, we need
- # to divide by the size of a single Unicode character,
- # which for NumPy is always 4
- if issubclass(obj.dtype.type, unicode_):
- itemsize //= 4
- if unicode is None:
- if issubclass(obj.dtype.type, unicode_):
- unicode = True
- else:
- unicode = False
- if unicode:
- dtype = unicode_
- else:
- dtype = string_
- if order is not None:
- obj = numpy.asarray(obj, order=order)
- if (copy or
- (itemsize != obj.itemsize) or
- (not unicode and isinstance(obj, unicode_)) or
- (unicode and isinstance(obj, string_))):
- obj = obj.astype((dtype, int(itemsize)))
- return obj
- if isinstance(obj, ndarray) and issubclass(obj.dtype.type, object):
- if itemsize is None:
- # Since no itemsize was specified, convert the input array to
- # a list so the ndarray constructor will automatically
- # determine the itemsize for us.
- obj = obj.tolist()
- # Fall through to the default case
- if unicode:
- dtype = unicode_
- else:
- dtype = string_
- if itemsize is None:
- val = narray(obj, dtype=dtype, order=order, subok=True)
- else:
- val = narray(obj, dtype=(dtype, itemsize), order=order, subok=True)
- return val.view(chararray)
- @set_module("numpy.char")
- def asarray(obj, itemsize=None, unicode=None, order=None):
- """
- Convert the input to a `chararray`, copying the data only if
- necessary.
- Versus a regular NumPy array of type `str` or `unicode`, this
- class adds the following functionality:
- 1) values automatically have whitespace removed from the end
- when indexed
- 2) comparison operators automatically remove whitespace from the
- end when comparing values
- 3) vectorized string operations are provided as methods
- (e.g. `str.endswith`) and infix operators (e.g. ``+``, ``*``,``%``)
- Parameters
- ----------
- obj : array of str or unicode-like
- itemsize : int, optional
- `itemsize` is the number of characters per scalar in the
- resulting array. If `itemsize` is None, and `obj` is an
- object array or a Python list, the `itemsize` will be
- automatically determined. If `itemsize` is provided and `obj`
- is of type str or unicode, then the `obj` string will be
- chunked into `itemsize` pieces.
- unicode : bool, optional
- When true, the resulting `chararray` can contain Unicode
- characters, when false only 8-bit characters. If unicode is
- None and `obj` is one of the following:
- - a `chararray`,
- - an ndarray of type `str` or 'unicode`
- - a Python str or unicode object,
- then the unicode setting of the output array will be
- automatically determined.
- order : {'C', 'F'}, optional
- Specify the order of the array. If order is 'C' (default), then the
- array will be in C-contiguous order (last-index varies the
- fastest). If order is 'F', then the returned array
- will be in Fortran-contiguous order (first-index varies the
- fastest).
- """
- return array(obj, itemsize, copy=False,
- unicode=unicode, order=order)
|